我尝试通过VBA从Oracle数据库导出数据,但在以下行中收到第13号错误“类型不匹配”:
mtxData = Application.Transpose(rs.GetRows)
下面是我的完整代码
Sub start()
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim mtxData As Variant
Dim strSQL As String
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset
cn.Open ( _
"user ID =user" & _
";Password=password" & _
";data source=source" & _
";Provider=OraOLEDB.oracle")
rs.CursorType = adOpenForwardOnly
strSQL = ("SELECT * FROM table")
rs.Open strSQL, cn
mtxData = Application.Transpose(rs.GetRows)
ActiveSheet.Range("A1:K22") = mtxData
下面是我期待的结果...
1条答案
按热度按时间abithluo1#
如果通过
GetRows
接收到的数据包含任何空值,则Transpose
将出现类型不匹配错误。但是,有一种更好的方法可以将记录集中的数据转储到Excel中:只需使用
Range.CopyFromRecordSet
方法,优点是不需要转置,只需指定起始单元格。如果还需要列名,请尝试以下操作: