我在VBA工作,为excel工作。我有一个名为“aKey”的数组(1到137,000个字符串,但确切的大小可能会发生变化,因此使代码通用是必要的)。我需要将aKey粘贴到工作表的第一列。到目前为止我已经尝试过
Range(.Offset(1,0),.Offset(UBound(aKey)+1,0)).Value = aKey
但这似乎只能粘贴数组第一个条目的137,000个版本。
我也试过了
Range(.Offset(1,0),.Offset(UBound(aKey)+1,0)).Value = WorksheetFunction.Transpose(aKey)
这也没用。通过谷歌搜索,我发现Transpose功能的粘贴大小有限,这可能是那里的问题。有人知道一种方法来实现我的目标吗?感谢
答案 0 :(得分:0)
Sub Tester()
Dim a1(), a2(), i As Long, ub As Long
ReDim a1(1 To 1, 1 To 137000)
'load source array ("wrong" shape)
For i = 1 To 137000
a1(1, i) = i
Next i
ub = UBound(a1, 2)
ReDim a2(1 To ub, 1 To 1) 'resize a2 ("right" shape) to match a1
' "flip" the a1 array into a2
For i = 1 To ub
a2(i, 1) = a1(1, i)
Next i
'drop a2 to worksheet
ActiveSheet.Range("a1").Resize(ub, 1).Value = a2
End Sub
答案 1 :(得分:0)
以下是为单个列创建数组并将其放在列中的示例:
Sub qwerty()
Dim aKey(1 To 137000, 1 To 1) As Variant
For i = 1 To 137000
aKey(i, 1) = Rnd
Next i
Range("A1:A137000") = aKey
End Sub