使用 VBA 将 Sheet.Range 大小调整为大型一维数组

Resize Sheet.Range to Large 1D Array with VBA

希望这不是重复的 post,但我一直无法找到我的问题的答案。下面的代码是我目前的代码 运行,但我正在尝试优化打印一维数组的最后一位,myArray,包含 100,000 行数据,到名为 sheet 的shHidden.

目的是通过拆分字符串、解析数组元素,然后将它们放入第二个数组来使用数组解析字符串。从那里,第二个数组将被打印到两个位置; 1) 通过 Join() 的另一个字符串,和 2) 作品sheet.

SplitTextBox1 = Split(shInterface.txt_Input, Chr(10))    

j = 0

For i = 0 To UBound(SplitTextBox1)
    
    j = j + 1
    
    ReDim Preserve MyArray(j)
                    
    MyArray(j) = SplitTextBox1(i)
        
Next i  

shInterface.txt_Output = Join(MyArray)

这就是我挣扎的地方。我想将 myArray 打印到 shHidden 以便稍后可以将其保存为 .CSV,但是 shHidden.Range("A1") .Resize(j) = myArray 的每个变体仅将 myArray 的第一个元素打印到shHidden.

的每个单元格

这就是我目前所做的,

For i = 1 To UBound(MyArray)
    shHidden.Range("A" & i) = MyArray(i)
Next i

与看起来像的东西相反,

shHidden.Range("B1").Resize(i) = MyArray

我已经尝试 Transposing 阵列,但它没有发送 100% 的阵列。

我做错了什么?

未经测试但应该接近:

Dim arr, i As Long, SplitTextBox1

SplitTextBox1 = Split(shInterface.txt_Input, Chr(10))

ReDim arr(1 To UBound(SplitTextBox1) + 1, 1 To 1)

For i = 0 To UBound(SplitTextBox1)
    arr(i + 1, 1) = SplitTextBox1(i)
Next i

shInterface.txt_Output = Join(SplitTextBox1)

shHidden.Range("A1").Resize(UBound(arr, 1), 1).Value = arr