Excel VBA: 열의 시퀀스 번호를 채우는 루프

Excel VBA: 열의 시퀀스 번호를 채우는 루프

저는 Excel VBA를 처음 접했고 현재 B열의 채워진 범위에 따라 A열의 시퀀스 번호를 자동 완성해야 하는 프로젝트를 작업하고 있습니다.

ozgrid.com 포럼에서 찾은 아래 코드를 사용하면 A열을 1부터 B열에 있는 인접한 셀의 마지막으로 사용된 행까지 자동 채웁니다. 하지만 제 경우에는 사용자 양식이 있고 명령이 있습니다. 버튼을 클릭하면 A열의 마지막으로 채워진 셀의 최대 수부터 B열인 인접한 셀의 마지막으로 채워진 셀까지 A열의 고유 참조 ID가 계속 생성됩니다.

그리고 아래 코드의 문제점은 명령 버튼을 처음 클릭하면 B열에 1부터 마지막으로 사용된 행까지의 시퀀스 번호가 생성되지만, 명령 버튼을 다시 클릭하면 A열이 1부터 자동 채워진다는 것입니다. 열 A에 존재하는 최대 수를 계속하는 대신 마지막으로 사용한 행을 다시 사용합니다.

예를 들어, 명령 단추를 처음 클릭할 때 최대 숫자는 82입니다. 다음 명령 단추를 클릭할 때 마지막으로 사용된 행 아래의 셀은 다시 열 B에서 마지막으로 사용된 행까지 83이어야 합니다.

또한 더 나은 참조를 위해 아래에 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입니다. 템플릿 만들기 버튼을 클릭하면 B열의 특정 데이터가 자동으로 채워집니다.

A열의 시퀀스 번호 자동 채우기를 위한 GUI:

       

답변1

해결책은 약간 투박해 보이지만, 수행하려는 작업에 대한 모든 정보가 없으면 광범위한 변경을 제안하지 않습니다.

해결책은 매우 간단합니다. 초기화만 하면 됩니다.N목록 앞의 마지막 값으로~을 위한고리. 지금 쓰는 방식은,N매크로를 실행할 때마다 0으로 재설정됩니다.

다음과 같은 것이 트릭을 수행할 것입니다.

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

관련 정보