条件:从当前用户桌面的Excel表获取数据源,Excel表数据源的名字从用户D盘的1xls Sheet1!A1获取
运行第一个宏加载数据库必须先打开一个Excel表,否则会出错
运行第二个宏合并1-6条记录至桌面,并关闭
由于第一次写这种东东 好多地方还要优化,稍候在附上,后面将将实现一键实现从数据加载到合并至指定位置,简化大家的工作量
第一个宏编写:
Sub 加载数据库()
'
' 加载数据库 Macro
' 宏在 2011-6-11 由 雨林木风 录制
'
chan = DDEInitiate(app:="Excel", topic:="system") '打开一个DDE通道
DDEExecute channel:=chan, Command:="[open(" & Chr(34) & "D:\1xls" & Chr(34) & ")]" '在一个应用程序中执行打开xls文件命令,需要指出的是,系统要求所需文件必须放在D盘。
DDETerminate channel:=chan '关闭DDE通道
chan = DDEInitiate(app:="Excel", topic:="D:\1xls") '打开一个DDE通道
Dim s As String
Dim q As String
Dim y As String
s = DDERequest(channel:=chan, Item:="R1C1")
DDETerminateAll
Dim excelClose As Object
Set excelClose = GetObject(, "ExcelApplication")
excelCloseworkbooks("1xls")Close False
y = Left(s, Len(s) - 1)
q = "C:\Documents and Settings\" & Environ("USERNAME") & "\桌面\" & y & "xls"
ActiveDocumentMailMergeOpenDataSource Name:=q, _
ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", _
WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _
Format:=wdOpenFormatAuto, Connection:= _
"Provider=MicrosoftJetOLEDB40;Password="""";User ID=Admin;Data Source=q;Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Data" _
, SQLStatement:="SELECT FROM `Sheet1$`", SQLStatement1:="", SubType:= _
wdMergeSubTypeAccess
End Sub
第二个宏已经变相的实现:多谢这个帖子:>
你录制一段宏,工具→宏→Visual Basic编辑器,就可以打开你所录制内容的代码,这些代码就是宏程序模块,以Sub开头,并以End Sub结尾,这是典型的VB程序模块。当然单纯说这是程序还有一些不太妥当之处,因为这段代码并不能脱离Word而独立运行,因此严格来说应该是程序模块,但对于非计算机专业的人士来说,说它是程序也应该是允许的。
如果是简单的记录工具,那么就只是记录下 *** 作的命令名,而不是一系列代码的组合。更何况,更多的宏命令只能通道编写程序代码的方法制作,并不能用记录的方法来完成。
总起来说,宏是一种VB程序模块。虽可以用来跟踪记录用户的 *** 作,但那只是为了方便用户 *** 作而增加的功能,宏绝不仅仅是一种简单的 *** 作记录工具。
录制宏的时候,鼠标应该是能够动的,只所以不能动,可能是机器配置比较低,以致于内存不足造成的反映滞后问题。
需要说明的是,在网吧或学校的机房,由于安装了硬盘保护卡,机器的性能会大大降低。
你先把所有数据都汇总到excel表中 例如全都写在A列
然后B列写公式
A列 B列
100 ="a" & A1 & "b"
10023 ="a" & A2 & "b"
098 ="a" & A3 & "b"
2014 ="a" & A4 & "b"
你写完B1里面的公式后,直接整个单元格(不是里面内容)往下复制就可以了 它自动会相应的变成B2、B3等
以上就是关于MS word 2003宏(邮件合并自动加载Excel数据库,合并完后自动保存)该怎么写这个宏呢全部的内容,包括:MS word 2003宏(邮件合并自动加载Excel数据库,合并完后自动保存)该怎么写这个宏呢、word文档中的宏是干什么用的啊、word高手进...等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)