Excel VBA: Цикл для заполнения порядковых номеров в столбце

Excel VBA: Цикл для заполнения порядковых номеров в столбце

Я новичок в Excel VBA и в настоящее время работаю над проектом, в котором необходимо автоматически заполнять порядковые номера в столбце A в зависимости от заполненного диапазона в столбце B.

С помощью кода ниже, который я нашел на форуме ozgrid.com, он автоматически заполняет столбец A от 1 до последней использованной строки в соседней ячейке, которая находится в столбце B. Но в моем случае у меня есть пользовательская форма и в ней есть кнопка, при нажатии на которую она должна просто продолжить генерировать уникальный идентификатор ссылки в столбце A от максимального числа в последней заполненной ячейке в столбце A до последней заполненной ячейки в соседней ячейке, которая находится в столбце B.

Проблема с приведенным ниже кодом заключается в том, что при первом нажатии кнопки команды генерируются порядковые номера от 1 до последней использованной строки в столбце B, но при повторном нажатии кнопки команды столбец A автоматически заполняется от 1 до последней использованной строки вместо того, чтобы продолжить максимальное число, существующее в столбце A.

Например, максимальное число при первом нажатии на кнопку команды — 82. При следующем нажатии на кнопку команды ячейка под последней использованной строкой должна быть 83 и так до последней использованной строки в столбце B.

Также для вашего удобства я привел ниже изображение моего графического интерфейса.

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. При нажатии кнопки «Создать шаблон» происходит автоматическое заполнение определенных данных в столбце B:

Графический интерфейс для автозаполнения порядковых номеров в столбце A:

       

решение1

Решение кажется немного неуклюжим, но, не зная всего, что вы пытаетесь сделать, я не буду предлагать существенных изменений.

Решение довольно простое, вам просто нужно инициализироватьнк последнему значению в списке переддляloop. Как это сейчас написано,нсбрасывается на ноль каждый раз при запуске макроса.

Подойдет что-то вроде следующего.

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

Связанный контент