我正在尝试生成一些将使用自动填充功能的代码。我希望用典型的1,2,3,4等填充B列,只要在A列的相应行中有文本/值。现在,我的代码是硬连线填充到单元格B50否重要的是,但是如果列A只有通过单元格A7的数据,我不希望它粘贴那么远。理想情况下,我想使用以下变量 - rownum = Range(“A1”)。End(xlDown).Row - 计算列A中具有文本/值的单元格数,并使用它来替换“ B50“在下面的行名称中。只是不确定实现这种情况的适当语法。这是我到目前为止的代码。
ActiveCell.FormulaR1C1 = "1"
Range("B2").Select
ActiveCell.FormulaR1C1 = "2"
Range("A1").Select
Range("B1:B2").Select
Selection.AutoFill Destination:=Range("B1:B50"), Type:=xlFillDefault
提前感谢任何帮助我的人!我是Macros和VBA Code的新用户,而且你们这么多人的知识量令我惊讶!
经济舱
答案 0 :(得分:4)
如果您没有在代码中选择任何内容,那就更好了。如果您只想根据A列的内容对B列中的行进行编号,则可以实现这一目的:
Sub NumberColumn()
Dim ws As Worksheet
Dim lastRow As Long
Set ws = ThisWorkbook.Sheets("Sheet1")
' get the last row from column A that has a value
lastRow = ws.Range("A" & ws.Rows.Count).End(xlUp).Row
' use the last row to determine how far down to extend the formula
ws.Range("B1:B" & lastRow).Formula = "=row()"
End Sub
答案 1 :(得分:1)
非常简单的选项,无需字符串即可使用:
Selection.AutoFill Destination:=Range("A2:A" & Cells(Rows.Count, "B").End(xlUp).Row)
复制列中的行数也是如此:
Range("A2:A" & Cells(Rows.Count, "B").End(xlUp).Row).Select
Selection.Copy