簡體   English   中英

VBA根據使用最后一個單元格的相鄰列自動填充

[英]VBA Autofill Down According to Adjacent Column Using Last Cell

我在這里想要做的是編寫一個代碼,該代碼將使用列A中數據的最后一個單元格作為自動填充的范圍,根據列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)

結束子

這是我的問題:

我想運行腳本,並讓它選擇A中最后一個填充的單元格(例如A4),然后使用B列中的數據自動填充到最后一行。

我的問題是,它會繼續選擇“ A2”而不是A中的最后一個單元格(在此示例中為“ A4”)進行自動填充,並使用“ A2”填充列A的全部,直到正確的距離。

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)更改為您想要的外觀即可。

這將在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

另一個簡單的實現方法如下

Sub simple_way()
    Range("A2:A" & Range("B" & Rows.Count).End(xlUp).Row).Value = Range("A2").Value
End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM