调整工作表大小.使用VBA从范围到大型1D阵列



希望这不是一篇重复的帖子,但我一直无法找到问题的答案。下面的代码是我目前正在运行的代码,但我正在尝试优化最后一位,它将包含100000行数据的1D数组myArray打印到名为shHidden的表上。

其目的是使用数组来解析字符串,方法是拆分字符串,解析数组中的元素,然后将它们放入第二个数组中。从那里,第二个阵列将被打印到两个位置;1( 另一个字符串通过Join((和2(一个工作表。

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

最新更新