我一直在尝试调换一个数组以将记录从ADODB.recordset粘贴到excel行。 (记录存储在2D Variant数组中)。但是,每当我尝试类似下面代码的第一行时,就会得到13:类型不匹配错误代码。因此,我试图深入了解错误所在,并构建了一个简单的整数2d数组。看起来转置函数不能在不抛出13错误代码的情况下进行这种转置。在线研究似乎表明,这种错误是由于转置的元素数量超过64k而引起的,但这不可能低于此值。有什么想法吗?vba转置类型不匹配错误
varRecords = rs2.GetRows(3) ' rs2 is a ADOBD.Recordset
intNumReturned = UBound(varRecords, 2) + 1
intNumColumns = UBound(varRecords, 1) + 1
For intRow = 0 To intNumReturned - 1
For intColumn = 0 To intNumColumns - 1
Debug.Print varRecords(intColumn, intRow)
Next intColumn
Next intRow
Dim Destination As Range
Set Destination = Range("k1")
Dim i, j As Integer
'Destination.Resize(UBound(varRecords, 2) + 1, UBound(varRecords, 1) + 1).Value = Application.Transpose(varRecords) - COMMENTED OUT BECAUSE IT ERRORS TYPE 13 TYPE MISMATCH
Dim myarr(3, 4) As Integer
myarr(0, 1) = 4
myarr(2, 4) = 6
Dim myvar As Variant
Set myvar = Application.Transpose(myarr) ' - ERROR THROWN HERE
删除'Set'关键字:'myvar = Application.Transpose(myarr)' –
如果您正在寻求第一行的帮助,您应该为此问题添加更多信息。否则,发布的答案是正确的,应该被接受。对于注释的代码,如果你显示'varRecords'如何实例化,赋值和它的维度,那么它可能会有帮助。还请指出您在该行上获得的具体错误消息。干杯。 –
好的,将编辑现有的问题 – chrisc