【发布时间】:2013-08-08 15:29:03
【问题描述】:
我这周刚刚了解了宏,正在寻求帮助(如果我的问题可能的话)..我想做的是运行一个宏,在 C 列中搜索 #1..then 在每个它下面的单元格增加数字直到它达到一个完整的单元格(下一部分)..然后找到下一个#1,依此类推,直到最后。如果这样的事情是可能的任何指导和专业知识表示赞赏!我在下面添加了一个模型。另外请记住,我在示例中使用了小数字。
前宏
后宏
【问题讨论】:
我这周刚刚了解了宏,正在寻求帮助(如果我的问题可能的话)..我想做的是运行一个宏,在 C 列中搜索 #1..then 在每个它下面的单元格增加数字直到它达到一个完整的单元格(下一部分)..然后找到下一个#1,依此类推,直到最后。如果这样的事情是可能的任何指导和专业知识表示赞赏!我在下面添加了一个模型。另外请记住,我在示例中使用了小数字。
前宏
后宏
【问题讨论】:
通过 ol' 宏记录器回答:
Sub Macro1()
Range("C1:C10").Select
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.FormulaR1C1 = "=R[-1]C+1"
End Sub
编辑:更新以根据 cmets 在基于完全填充的 B 列的连续区域内填充。
Sub Macro2()
Range("B1").Select
Selection.CurrentRegion.Select
Selection.Offset(0, 1).Resize(, 1).Select
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.FormulaR1C1 = "=R[-1]C+1"
End Sub
或者,如果不是连续的,但希望填充到 B 列中填充的最后一行
Sub Macro3()
Range("B1", Range("B1048576").End(xlUp)).Select
Selection.Offset(0, 1).Resize(, 1).Select
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.FormulaR1C1 = "=R[-1]C+1"
End Sub
【讨论】:
CurrentRegion。 (2) 如果区域不连续(整个空白行分开),则转到工作表上最后一个可能的单元格,例如Range("C1048576").Select 用于 Excel 2010。然后Selection.End(xlUp).Select 以到达最后填充的单元格。