我在这里要做的是编写一个代码,根据B列,在A列中自动填充到最后一行数据,使用最后一个单元格中的数据作为自动填充的范围。例如,列A是“名称”,B是“日期”。 B列有6个日期,而A列每隔几行有一个不同的“名称”。以下是我到目前为止的情况:
子测试()
Dim lastRow As Long
lastRow = Range("B" & Rows.Count).End(xlUp).Row
Range("A2").AutoFill Destination:=Range("A2:A" & lastRow)
End Sub
这是我的问题:
我想运行脚本并让它选择A中最后一个填充的单元格(例如A4),然后自动填充到B列中数据的最后一行。
我的问题是它继续选择“A2”而不是A中的最后一个单元格(在本例中为“A4”)自动填充并用“A2”填充所有A列,并且正确地填充到正确的距离。
答案 0 :(得分:2)
Sub copyDown()
Dim lastRow As Long, i&
lastRow = Range("B" & Rows.Count).End(xlUp).Row
For i = 1 to 2
Cells(2,i).AutoFill Destination:=Range(Cells(2,i),Cells(lastRow,i))
next i
End Sub
正如@Findwindow所提到的,你不会改变它自动填充的单元格。为了做一个简单的循环(循环遍历A和B列),我喜欢使用Cells([row],[column])
然后循环遍历这两个。
如果您不希望它为A2
或其他任何内容,则只需将第一个Cells(2,i)
更改为您希望其显示的位置。
答案 1 :(得分:2)
这将找到A列中最后一个被占用的单元格并改为使用它:
Sub test()
Dim ws As Worksheet
Dim lastRow As Long
Dim Alastrow As Long
Set ws = ActiveSheet
lastRow = ws.Range("B" & ws.Rows.Count).End(xlUp).row
Alastrow = ws.Range("A" & ws.Rows.Count).End(xlUp).row
Range("A" & Alastrow).AutoFill Destination:=Range("A" & Alastrow & ":A" & lastRow)
End Sub
答案 2 :(得分:1)
另一种简单的实现方法如下
Sub simple_way()
Range("A2:A" & Range("B" & Rows.Count).End(xlUp).Row).Value = Range("A2").Value
End Sub