Excel VBA: bucle para completar números de secuencia en una columna

Excel VBA: bucle para completar números de secuencia en una columna

Soy nuevo en Excel VBA y actualmente estoy trabajando con un proyecto que necesita autocompletar números de secuencia en la Columna A dependiendo del rango completado en la Columna B.

Con el siguiente código que encontré en el foro ozgrid.com, completa automáticamente la columna A desde 1 hasta la última fila utilizada en la celda adyacente que está en la columna B. Pero en mi caso, tengo un formulario de usuario y tiene un comando. botón que, al hacer clic, debería continuar generando una ID de referencia única en la columna A desde el número máximo en la última celda llena de la columna A hasta la última celda llena de la celda adyacente, que es la columna B.

Y el problema con el código siguiente es que la primera vez que se hace clic en el botón de comando, genera números de secuencia desde 1 hasta la última fila utilizada en la Columna B, pero cuando se hace clic nuevamente en el botón de comando, la Columna A se completa automáticamente desde 1. a la última fila utilizada nuevamente en lugar de continuar con el número máximo que existe en la Columna A.

Por ejemplo, el número máximo en el primer clic en el botón de comando es 82. En el siguiente clic en el botón de comando, la celda debajo de la última fila utilizada debe ser 83 hasta la última fila utilizada en la Columna B nuevamente.

Además, proporcioné una imagen de mi GUI a continuación para su mejor referencia.

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

GUI para autocompletar datos en la columna B. Cuando se hace clic en el botón Crear plantilla, se completan automáticamente los datos específicos en la columna B:

La GUI para autocompletar números de secuencia en la columna A:

       

Respuesta1

La solución parece un poco complicada, pero sin saber todo acerca de lo que estás intentando hacer, no sugeriré cambios extensos.

La solución es bastante simple, sólo necesitas inicializarnorteal último valor de la lista antes delparabucle. La forma en que está escrito ahora,nortese restablece a cero cada vez que ejecuta la macro.

Algo como lo siguiente funcionaría.

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

información relacionada