Excel VBA:循環填充列中的序號

Excel VBA:循環填充列中的序號

我是 Excel VBA 新手,目前正在處理一個項目,需要根據 B 列中的填充範圍自動填入 A 列中的序號。

使用我在ozgrid.com 論壇中找到的下面的程式碼,它會自動填入A 列,從1 到B 列中相鄰儲存格中最後使用的行。有一個命令按鈕,單擊時,它應該繼續在A 列中產生唯一的參考ID,從A 列中最後一個填充單元格的最大編號到相鄰單元格(即B 列)中最後一個填充單元格的最大編號。

下面程式碼的問題是,第一次點擊命令按鈕時,它會產生從 1 到 B 列中最後使用的行的序號,但是當再次單擊命令按鈕時,A 列會從 1 自動填充再次到最後使用的行,而不是繼續A 列中現有的最大數量。

例如,第一次點選指令按鈕時的最大數字為 82。

另外,我在下面提供了我的 GUI 圖片,讓您更好地參考。

Sub SequenceLoop()
    Dim k, i As Long, n As Long
    Dim LR1 As Long
    Dim ws As Worksheet

Set ws = ThisWorkbook.Sheets("Sheet1")

LR1 = ws.Range("B" & ws.Rows.Count).End(xlUp).Row


With Range("A2:A" & LR1)
    k = .Value
    For i = 1 To UBound(k, 1)
        If Len(k(i, 1)) = 0 Then
            n = n + 1
            k(i, 1) = n
        End If
    Next
    .Value = k
End With 
End Sub

用於在 B 列中自動填入資料的 GUI。

用於自動填入 A 列中的序號的 GUI:

       

答案1

解決方案似乎有點笨重,但在不了解您想要做什麼的情況下,我不會建議進行大量更改。

解決方法很簡單,只需要初始化即可n在列表中的最後一個值之前為了環形。按照現在的寫法,n每次運行巨集時都會重設為零。

像下面這樣的東西就可以解決問題。

n = Cells(Rows.Count, 1).End(xlUp).Value

相關內容