鉴于以下代码,我想了解其工作原理:
Columns("A:A").Select
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.FormulaR1C1 = "=R[-1]C"
因此,当前执行的操作是获取该行的顶部单元格,并相对于该单元格下面的所有空白单元格中的该单元格自动使用公式= A1向下填充。
但是它会在包含值的下一个单元格处停止,并对其下的所有单元格进行相同的处理,直到下一个。
这是如何工作的? vba如何知道从空白上方的单元格中获取公式,而不仅仅是从列的第一个单元格中获取公式?
非常感谢您的帮助!
答案 0 :(得分:1)
这是代码的工作方式:
选择整列A
Columns("A:A").Select
现在仅选择A列中的空白单元格
Selection.SpecialCells(xlCellTypeBlanks).Select
现在,对于我们选择的每个单元格(A列中的所有空白单元格),输入一个公式。 该公式大致等于:“等于该单元格正上方的单元格。”
Selection.FormulaR1C1 = "=R[-1]C"
该公式使用的是相对单元格引用,它的字面意思是“等于第1行,相同的列”。