【问题标题】:How to print a one dimensional array in an entire excel column without looping?如何在不循环的情况下在整个 excel 列中打印一维数组?
【发布时间】:2019-04-16 10:51:41
【问题描述】:

我有一个大的一维数组,其中包含一些我想一次性打印在整个 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

但它似乎只打印数组的第一个值:

这是我真正需要的:

任何帮助将不胜感激

【问题讨论】:

  • 您可以轻松修改其他问题中有关此数据的代码以创建相同的输出(将这些列添加到现有列)
  • 是的,我成功了,非常感谢您的帮助,感谢您,我将能够按时完成我的任务!
  • 您看到我为解决您遇到的错误所做的修改了吗?他们工作了吗?
  • 是的,他们做到了,我还阅读了一些您发布的课程指南,这些指南帮助我更好地理解了您的代码。再次感谢您
  • 那么也许你可以将我的答案标记为已接受。

标签: arrays excel vba printing range


【解决方案1】:

默认情况下,一维数组被视为一行,因此您需要将其转置以转换为列。

Sheets("AUX").Range("F2:F" & lastRow).Value = Application.Transpose(diffArr)

【讨论】:

    猜你喜欢
    • 2013-01-26
    • 1970-01-01
    • 2023-03-05
    • 1970-01-01
    • 2019-10-06
    相关资源
    最近更新 更多