更新:
我正在尝试为Excel工作表分配一个值数组。当我使用TRANSPOSE功能时,我遇到类型不匹配错误。我不明白为什么,集合中只有大约200个“行”:
Worksheets("xyz").Range("A2").Resize(ValidCode, 5).Value = & _
Application.WorksheetFunction.Transpose(CodeData)
当我放置静态值而不是转置数组时,它工作正常。我不明白发生了什么。它是“Variante / Variante(0到4,0到205)”类型
数组需要转置,因为我必须在代码循环中重新保存它(所以“列”是行等等)我想我可以手动转置它,但这似乎没必要。
答案 0 :(得分:0)
&当我尝试实现您的代码时,字符不是必需的,实际上会引发1004
错误。
否则,我无法复制您描述的错误,此示例代码可以使用或不使用Transpose
函数,但您需要使用Transpose
来获得所需的结果。
Sub Test()
Dim ws As Worksheet: Set ws = Sheets("xyz")
Dim rng As Range: Set rng = ws.Range("A2")
Dim r As Integer
Dim c As Integer
Dim CodeData() As Variant
ReDim Preserve CodeData(4, 205) '## Create a dummy array to test this method
For r = 0 To UBound(CodeData, 1) '## populate the array with random numbers
For c = 0 To UBound(CodeData, 2)
CodeData(r, c) = Application.WorksheetFunction.RandBetween(0, 100)
Next
Next
'## Drop this array in to the worksheet:
rng.Resize(UBound(CodeData, 2) + 1, UBound(CodeData, 1) + 1).Value = _
Application.WorksheetFunction.Transpose(CodeData)
End Sub