Excel 如何自动填充活动单元格的列直到最后一行
正在尝试执行以下代码:Excel 如何自动填充活动单元格的列直到最后一行,excel,vba,range,autofill,Excel,Vba,Range,Autofill,正在尝试执行以下代码: ActiveCell.Offset(1, 0).Select 'Noting but F2 ActiveCell.FormulaR1C1 = "=LEFT(RC[-1],4)" ' find last row with data in column "A" lastRow = Cells(Rows.Count, "A").End(xlUp).Row ' copying the formula from "F2" all the way to
ActiveCell.Offset(1, 0).Select 'Noting but F2
ActiveCell.FormulaR1C1 = "=LEFT(RC[-1],4)"
' find last row with data in column "A"
lastRow = Cells(Rows.Count, "A").End(xlUp).Row
' copying the formula from "F2" all the way to the last cell
ActiveCell.AutoFill Destination:=Range(ActiveCell.EntireColumn & lastRow), Type:=xlFillDefault
它给出了一个错误,表示类型不匹配
但当我尝试时:
ActiveCell.AutoFill Destination:=Range("F2:F" & lastRow), Type:=xlFillDefault
它工作正常,但我不希望F2:F出现,因为我不知道将来会出现哪列。要回答您的问题,您没有指定正确的范围。正如您所说,可以指定一个简单的范围
范围(“A1:B4”)
其中A1
和B4
是范围的两个相对角范围(单元格(1,1)、单元格(4,2))
其中单元格(1,1)
为A1
和单元格(4,2)
为B4
ActiveCell.AutoFill Destination:=Range(Cells(2, ActiveCell.Column), Cells(lastRow, ActiveCell.Column)), Type:=xlFillDefault
为了达到您的目标,您还可以避免使用自动填充。FormulaR1C1格式允许您使用“相对”单元偏移量/地址编写公式。因此,自动填充后,desiderd列中的所有单元格都将具有相同的公式1C1。
然后可以避免使用自动填充,并手动为整个列设置相同的公式1C1
因此,您可以编写这样一个更简单的代码:
lastRow = Cells(Rows.Count, "A").End(xlUp).Row
Range(Cells(1, ActiveCell.Column), Cells(lastRow, ActiveCell.Column)).FormulaR1C1 = "=LEFT(RC[-1],4)"
您应该阅读这个
范围(ActiveCell.entireclumn&lastRow)
没有任何意义。嗯,我们可以用什么来代替它或“F2:F”,因为在实际执行时列号是未知的。只有一样东西是相同的,即标题(第1行中的值)@SJRuse单元格(2,activecell.column)
和单元格(lastrow,activecell.column)
。活动单元格必须在目标范围内。也就是说,您可以一次性应用公式,无需自动填充。