Как напечатать одномерный массив во всем столбце Excel без циклов? - PullRequest
0 голосов
/ 16 апреля 2019

У меня есть большой одномерный массив, который содержит несколько чисел, которые я хотел бы напечатать во всем столбце Excel за один раз.

Это мой код:

Sub writeTimeDiff()
    Dim i As Long
    Dim j As Long
    Dim lastRow As Long
    Dim diffArr() As Variant

    lastRow = Sheets("AUX").Range("A1").End(xlDown).Row

    ReDim diffArr(lastRow)

    j = 2

    For i = 0 To lastRow
        'Store the difference between two values in a row in the array
        tsIN = Sheets("AUX").Cells(j, 3).value
        tsOUT = Sheets("AUX").Cells(j, 4).value
        diffArr(i) = tsOUT - tsIN
        j = j + 1
    Next i

    'I'd like it to print the array throughout the entire F column (Starting in F2) 
    Sheets("AUX").Range("F2:F" & lastRow).value = diffArr
End Sub

Но, похоже, печатается только первое значение массива:

1

Это то, что мне действительно нужно:

2

Любая помощь будет оценена

1 Ответ

2 голосов
/ 16 апреля 2019

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

Sheets("AUX").Range("F2:F" & lastRow).Value = Application.Transpose(diffArr)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...