Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA存储SQL选择内容到剪贴板_Excel_Vba - Fatal编程技术网

Excel VBA存储SQL选择内容到剪贴板

Excel VBA存储SQL选择内容到剪贴板,excel,vba,Excel,Vba,我正在尝试在Excel中编写VBA代码(在UserForm中单击命令按钮时),以运行SQL查询并将结果存储到windows剪贴板。数据将是包含多个记录的一列 以下是我尝试的代码,但出现错误: 运行时错误“13”: 类型不匹配 Private Sub CommandButton4_Click() Dim cn As Object 'Connection Dim rs As Object 'Recordset Dim vAry As Var

我正在尝试在Excel中编写VBA代码(在UserForm中单击命令按钮时),以运行SQL查询并将结果存储到windows剪贴板。数据将是包含多个记录的一列

以下是我尝试的代码,但出现错误: 运行时错误“13”: 类型不匹配

Private Sub CommandButton4_Click()

    Dim cn      As Object   'Connection
    Dim rs      As Object   'Recordset
    Dim vAry    As Variant  'Variant Array

    Set cn = CreateObject("ADODB.Connection")
    Set rs = CreateObject("ADODB.Recordset")

    cn.Open "Driver={MySQL ODBC 5.3 Unicode Driver};server=10.0.0.2;" & _
            "database=db uid=user; pwd=password;Port=3306"
    rs.Open "Select Device_ID From returns Where Status = 'A';", cn
    vAry = rs.GetRows

    rs.Close
    cn.Close

    Set rs = Nothing
    Set cn = Nothing

    Set myData = New DataObject
    myData.SetText vAry
    myData.PutInClipboard
    MsgBox ("data has been copied to clipboard")

End Sub

我通过添加/修改将数组变量转换为字符串的代码修复了错误:

Dim strData As String
For i = 0 To UBound(vAry, 2) - LBound(vAry, 2)
    strData = strData & vAry(0, i) & vbCrLf
Next

Set myData = New DataObject
myData.SetText strData
myData.PutInClipboard
MsgBox ("data has been copied to clipboard")

您得到了什么错误?运行时错误“13”:类型不匹配。。。第行:myData.SetText vAryRecordSet.GetRows返回一个数组,而不是一个文本字符串。