我用Access向EXCL导入数据.由于每次查询的数据不一样,当第二次查询的数据较少时,则无法将上次的数据完全覆盖,造成下表引用的数据不真实.所以我希望向EXCL表粘贴数据前,先运行我已录制好的宏(工作表.xls!模块1.Macro1),清空数据(不是整个表),再进行粘贴.[attach]40623[/attach]作者: asklove 时间: 2009-12-4 14:59
以前在论坛上看到过一个例子,用命令来运行excel的宏。你搜搜看
或者直接把execel的宏命令复制过来也行
你这个例子可以把它加在这里:
objWs.Worksheets(strShtName).Activate
' Copy the data
' First the field names 第一行是ACCESS中的列表名
'===========================================
objWs.Worksheets(strShtName).Range("A1:N12").Select
Selection.ClearContents
'===========================================
For intCol = 0 To rs.Fields.Count - 1 '是获取表中的列数
Next intCol作者: 123shusheng 时间: 2009-12-4 20:51
请高手能否改改例子,谢谢!作者: lyc283 时间: 2009-12-7 14:40
rrrrrrrrrrrrrrrrrrrrrr作者: 123shusheng 时间: 2009-12-8 13:35
自己顶一下作者: asklove 时间: 2009-12-8 16:33
还没解决?那我来帮你吧
很简单:objXL.Run "Macro1"就行了
原来那个QtoE如果数据多的话,导出会很慢,你试试下面这个吧,快些
Sub QueryToExcel(ByVal xlsName As String, ByVal strShtName As String, ByVal Hval As String)
'==============================================
'函数功能:将查询数据导出到Excel
'例子ueryToExcel "合医全部信息", "全部信息", "B4"
'xlsName=Excel文件名 "合医全部信息",
'strShtName=Excel工作簿名 "全部信息"
'Hval=从哪个单元格导出 "B4"
'===============================================
Dim objXL As Excel.Application
Dim objWs As Excel.Workbook
Dim obSTR As String
Set objXL = New Excel.Application
Set objWs = objXL.Workbooks.Open(CurrentProject.Path & "\" & xlsName & ".xls")
'=====================
'如果你想先运行Excel宏的话就加下面这句
'objXL.Run "Macro1"
'=====================
objWs.Worksheets(strShtName).Activate
objWs.Worksheets(strShtName).Range(Hval).CopyFromRecordset Me.导出参加信息子窗体.Form.Recordset '查询的子窗体记录