Создать массив последовательностей 1: N - PullRequest
0 голосов
/ 27 мая 2020

В настоящее время я пытаюсь создать массив последовательных чисел (1: N), чтобы заполнить горизонтальный диапазон ($ C $ 6: N). Когда я использую application.transpose, весь мой диапазон заполняется 1, а когда я его не использую, весь диапазон пуст. Я прикрепил свой код ниже. pn - это диапазон, который я хочу заполнить, а nop - его количество. Спасибо!

Best, M

pn.Value = Array(Application.WorksheetFunction.Sequence(1, nop.Value))

Ответы [ 2 ]

2 голосов
/ 27 мая 2020

Я поставил 2 варианта ниже:

Номер один: (кажется, это то, что вы хотите)

Sub generateSequence_MethodOne()

'Start at a cell and generate till a number

Dim pn As Range
Dim nop As Long

    Set pn = Range("C6")    'starting cell
    nop = 250   'number of entries

    With pn
        .value = 1
        .AutoFill Destination:=pn.Resize(, nop), Type:=xlFillSeries
    End With

'    'if you want to loop instead, then use this instead of the above
'    For i = 1 To nop
'        pn.Offset(, i - 1).value = i
'    Next

End Sub

и номер два, используйте это, если вы знаете диапазон, который вы хотите заполнить, не зная до какого числа

Sub generateSequence_MethodTwo()

'set a range and fill it with a sequence

Dim cell As Range
Dim n As Long

    n = 1

    For Each cell In Range("C6:Z6").Cells   'known range to fill
        cell.value = n
        n = n + 1
    Next

End Sub
1 голос
/ 27 мая 2020

Чтобы использовать SEQUENCE() в VBA для заполнения от B9 до M9 :

Sub FillUsingSequence()
    Dim rng As Range
    Set rng = Range("B9:M9")
    rng.Value = Application.WorksheetFunction.Sequence(1, rng.Count, 1, 1)
End Sub

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...