Excel 双击“自动填充-基于相邻单元的动态”
我需要做: 我正在使用Excel中的正常自动填充功能(双击单元格侧面的点)将内容复制到子单元格,因此在这种情况下,单击单元格A1中的点将执行以下操作:Excel 双击“自动填充-基于相邻单元的动态”,excel,vba,double-click,Excel,Vba,Double Click,我需要做: 我正在使用Excel中的正常自动填充功能(双击单元格侧面的点)将内容复制到子单元格,因此在这种情况下,单击单元格A1中的点将执行以下操作: 我需要一个脚本,该脚本将在整个列中重复该过程,直到相邻单元格中不再有值为止。这大概就是您要查找的内容: Option Explicit Sub FillInTheBlanks() Dim StartCell As Range, EndCell As Range Set StartCell = ActiveCell Se
我需要一个脚本,该脚本将在整个列中重复该过程,直到相邻单元格中不再有值为止。这大概就是您要查找的内容:
Option Explicit
Sub FillInTheBlanks()
Dim StartCell As Range, EndCell As Range
Set StartCell = ActiveCell
Set EndCell = ActiveSheet.Cells(ActiveSheet.UsedRange.Rows.Count + 1, StartCell.Offset(0, 1).Column).End(xlUp)
Dim currentText As String
Dim i As Long
For i = StartCell.Row To EndCell.Row
If Not IsEmpty(ActiveSheet.Cells(i, StartCell.Row)) Then
currentText = ActiveSheet.Cells(i, StartCell.Row).Text
Else
ActiveSheet.Cells(i, StartCell.Row).Value = currentText
End If
Next i
End Sub
使用该代码可以执行以下操作:
如果您真的想要屏幕截图中的内容,则需要执行以下操作:
Option Explicit
Sub FillInTheBlanks()
Dim StartCell As Range, EndCell As Range, NextCell As Range
Set StartCell = ActiveCell
Set EndCell = Cells(ActiveSheet.UsedRange.Rows.Count + 1, StartCell.Offset(0, 1).Column).End(xlUp)
While StartCell.Row < EndCell.Row
Set NextCell = StartCell.Offset(1, 1).End(xlDown).Offset(0, -1)
StartCell.AutoFill Destination:=ActiveSheet.Range(StartCell, NextCell), Type:=xlFillDefault
Set StartCell = NextCell.Offset(1, 0)
Wend
End Sub
选项显式
子填充空格()
变暗起始单元格作为范围,结束单元格作为范围,下一个单元格作为范围
设置StartCell=ActiveCell
Set EndCell=Cells(ActiveSheet.UsedRange.Rows.Count+1,StartCell.Offset(0,1).Column.End(xlUp)
而StartCell.Row
这是什么意思
您可以通过键盘执行此操作
- 选择A列
- 选择主页|查找并选择|转到特殊。。。空白行吗
- 按[=][向上箭头][ctrl+Enter]
等等,您是想让它自动递增数字,还是重复表1,直到到达表2?如果你的屏幕截图是你想要的行为,那么我看不出你想要实现什么。为了补充@Alain的问题,在单元格A7的表2中应该是什么?表3?你为什么不试试看,有什么具体问题再回来找我们……对不起。。我的示例是错误的,是的,我不需要当前设置,我将更新帖子。
UsedRange
需要符合条件,例如,ActiveSheet。UsedRange
@douglancy“need”是一个强有力的词。在这种情况下不是这样的-如果此操作是在一个选择上进行的,(即选择一个单元格并激活一个快捷键-这显然是代码的编写方式,因为它使用了“ActiveCell”),那么数据上下文是隐含的。@АСёаааааааааааааа,并且不正确地考虑边界情况,例如下一列中只有一行时,等等。在正确的VBA中,任何使用关键字范围,单元格,选择,活动单元格,使用区域,等等。。。如果代码有这么多问题,那么为什么要发布它呢?阿兰,我说“需要”,因为它没有为我编译-“未知变量”编译器消息。如果我打字?在调试窗口中,我得到了“需要对象”的UsedRange.Address。在使用“Activesheet.”Excel2010进行资格验证时,这两个问题都得到了解决。这真是妙极了!如果我们试图使用键盘简化此操作,在Excel 2003中,您可以使用+
快捷方式进入第二步。噢,哇!。。。这真是太棒了,展示了Excel的强大功能(还有那些了解这些高级功能的人)。。。谢谢你!