如何按照一个工作簿内容在另一工作簿显示出来是我要的固定格式_百度知 ...

发布网友 发布时间:2024-10-23 22:36

我来回答

1个回答

热心网友 时间:2024-11-18 01:04

1,test.xls需另存为test.xlsm
2,reference.xlsx需另存为reference.xlsm 因为需要运行宏
3,建议增加字段名,操作运算容易
4,代码放在reference.xlsm
5代码功能:从TEST表中把与REFERENCE对应的第一列中序列号相同的相关信息连同对应的序列号导出到表reference.xlsm中

Sub AdoTs()

Dim Cnn
Dim Sql As String

Set Cnn = CreateObject("ADODB.Connection")

'HDR=no 无标题栏
Cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.Path & "\test.xlsm;Extended Properties='Excel 12.0 Macro;HDR=no';"

Sql = "select aa.* from [Sheet1$a:j] as aa INNER JOIN [Excel 12.0;DATABASE=" & ThisWorkbook.FullName & ";HDR=no;].[Sheet1$] as bb ON aa.f1=bb.f1; "
'结果放到表2
Sheet2.Range("a1").CopyFromRecordset Cnn.Execute(Sql)
'关闭连接
Cnn.Close
'释放内存
Set Cnn = Nothing

End Sub

热心网友 时间:2024-11-18 01:06

1,test.xls需另存为test.xlsm
2,reference.xlsx需另存为reference.xlsm 因为需要运行宏
3,建议增加字段名,操作运算容易
4,代码放在reference.xlsm
5代码功能:从TEST表中把与REFERENCE对应的第一列中序列号相同的相关信息连同对应的序列号导出到表reference.xlsm中

Sub AdoTs()

Dim Cnn
Dim Sql As String

Set Cnn = CreateObject("ADODB.Connection")

'HDR=no 无标题栏
Cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.Path & "\test.xlsm;Extended Properties='Excel 12.0 Macro;HDR=no';"

Sql = "select aa.* from [Sheet1$a:j] as aa INNER JOIN [Excel 12.0;DATABASE=" & ThisWorkbook.FullName & ";HDR=no;].[Sheet1$] as bb ON aa.f1=bb.f1; "
'结果放到表2
Sheet2.Range("a1").CopyFromRecordset Cnn.Execute(Sql)
'关闭连接
Cnn.Close
'释放内存
Set Cnn = Nothing

End Sub
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com