excel 用sql语句查询sheet1的内容复制到sheet2vba
你可以使用VBA编写一个宏来实现将Sheet1的内容复制到Sheet2。以下是一个示例的VBA代码:
Sub CopyData()
Dim srcSheet As Worksheet
Dim destSheet As Worksheet
Dim srcRange As Range
Dim destRange As Range
Dim sql As String
Dim conn As Object
Dim rs As Object
Dim i As Integer
' 设置源表、目标表
Set srcSheet = ThisWorkbook.Sheets("Sheet1")
Set destSheet = ThisWorkbook.Sheets("Sheet2")
' 设置源范围
Set srcRange = srcSheet.UsedRange
' 连接到Excel数据源
Set conn = CreateObject("ADODB.Connection")
conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & ";Extended Properties=""Excel 12.0;HDR=Yes;IMEX=1"";"
' 执行SQL查询获取结果集
sql = "SELECT * FROM [" & srcSheet.Name & "$]"
Set rs = CreateObject("ADODB.Recordset")
rs.Open sql, conn
' 将结果集复制到目标表
destSheet.Cells.Clear
destSheet.Range("A1").CopyFromRecordset rs
' 关闭连接
rs.Close
conn.Close
' 清理对象
Set rs = Nothing
Set conn = Nothing
End Sub
在VBA编辑器中,按下Alt + F11打开VBA编辑器,然后在项目资源管理器中找到你的工作簿,右键点击并选择"插入" -> "模块",将以上代码粘贴到模块中。然后你可以通过"开发者"选项卡中的"宏"按钮来运行这个宏。
这段代码使用了ADODB对象来连接到Excel数据源,并执行一个SQL查询来获取结果集。然后将结果集复制到Sheet2中的单元格中。请确保你的计算机已经安装了Microsoft Access数据库引擎,以便能够使用ADODB对象
原文地址: http://www.cveoy.top/t/topic/iqrI 著作权归作者所有。请勿转载和采集!