要在Excel中使用VBA编写SQL,可以使用内置的QueryTable对象。以下是一个示例代码,演示如何将查询结果导入到Excel工作表中:

Sub RunSQLQuery()
    Dim connStr As String
    Dim sqlQuery As String
    Dim conn As Object
    Dim rs As Object
    Dim ws As Worksheet
    Dim qt As QueryTable
    
    ' 设置连接字符串和SQL查询
    connStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\path\to\your\excel\file.xlsx;Extended Properties=""Excel 12.0 Xml;HDR=YES;"""
    sqlQuery = "SELECT * FROM [Sheet1$]"
    
    ' 创建连接对象
    Set conn = CreateObject("ADODB.Connection")
    
    ' 打开连接
    conn.Open connStr
    
    ' 创建记录集对象
    Set rs = CreateObject("ADODB.Recordset")
    
    ' 执行查询
    rs.Open sqlQuery, conn
    
    ' 清除旧数据
    Set ws = ThisWorkbook.Sheets("Sheet2") ' 更改为目标工作表的名称
    ws.Cells.ClearContents
    
    ' 将查询结果导入到工作表
    Set qt = ws.QueryTables.Add(rs, ws.Cells(1, 1))
    qt.Refresh
    
    ' 关闭记录集和连接
    rs.Close
    conn.Close
    
    ' 释放对象
    Set rs = Nothing
    Set conn = Nothing
End Sub

上述代码使用了ADODB连接字符串来连接Excel文件,并执行了一个SELECT查询,将结果导入到名为"Sheet2"的工作表中。你需要根据自己的需求修改连接字符串和查询语句,并确保目标工作表的名称正确。

请注意,虽然本示例中没有使用ADO库,但实际上CreateObject("ADODB.Connection")和CreateObject("ADODB.Recordset")都是使用了ADO库

excel 写sql vba数据在这个excel文件中不用ado库

原文地址: https://www.cveoy.top/t/topic/iqmk 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录