在embedded的.docx(Word)文件上运行Excel中的邮件合并
请帮忙解决这个问题,因为我被困在最后一个阶段,试图在下面的代码中正确定义我的variables。
我想按顺序执行以下操作:
- 点击“CommandButton1”button
- 然后将打开一个名为“CR_MMFormTest”的embedded式文档(目前已经完成的没有数据源的mergefields)
- VBA帮助我创build一个窗体的副本,并将其用于….
- 调用函数DistrictMailMerge
我遇到的问题在于3号和4号。
- 副本脚本不适用于embedded的文档。 它会说
运行时错误'5174':对不起,我们无法find您的文件。 是移动,重命名还是删除?
- 我无法使用函数DistrictMailMerge来识别该函数应该在打开的文档上工作
我试过的:我想为我的embedded式文档创build文档打开事件,但它不会工作。 文档仅作为临时文档打开,脚本不会保存。 所以我不能只是在打开的事件中执行DistrictMailMerge函数而不使用Excel来代替。
我认为这个问题在于这些文件的性质。 它们并不像一般的Word文档那样真正“存在”。 我想知道有没有人可以帮助我。
这是子程序:
Private Sub CommandButton1_Click() Sheets("Resource Bank").Select ActiveSheet.Shapes("CR_MMFormTest").Select Selection.Verb xlVerbOpen Call DistrictMailMerge End Sub
这是我打算打开的文档打电话的function:
Function DistrictMailMerge() Application.ScreenUpdating = False On Error GoTo NoKTOAccess Application.Documents.Add ActiveDocument.FullName Close_All_Except_Active_Document RunMMKTO Exit Function NoKTOAccess: If Err.Number = 5174 Then RunMMPEO End If Application.ScreenUpdating = True End Function Sub Close_All_Except_Active_Document() Dim i As Integer Dim KeepOpen As String KeepOpen = ActiveDocument.Name For i = Documents.Count To 1 Step -1 If Documents(i).Name <> KeepOpen Then Documents(i).Close Savechanges:=wdDoNotSaveChanges Next i End Sub Sub RunMMKTO() With ActiveDocument.MailMerge .OpenDataSource _ Name:="\\Astc-ls-001\new_admin\File Sharing\001. KLN 1\Caseworkers\Herman\Masterlist One-Stop Portal.xlsm", _ Format:=wdOpenFormatAuto, _ Connection:="Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=\\Astc-ls-001\new_admin\File Sharing\001. KLN 1\Caseworkers\Herman\Masterlist One-Stop Portal.xlsm;Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";Jet OLEDB:System database="""";Jet OLEDB:Registry ", _ SQLStatement:="SELECT * FROM [CR Step 2 - Mail Merge List$] WHERE [ISS No#] LIKE '%-%'", _ SQLStatement1:="", SubType:=wdMergeSubTypeAccess .ViewMailMergeFieldCodes = wdToggle End With End Sub Sub RunMMPEO() With ActiveDocument.MailMerge .OpenDataSource _ Name:="\\192.168.9.190\new_admin\File Sharing\Caseworkers\Herman\ISS OSP\Masterlist One-Stop Portal.xlsm", _ Format:=wdOpenFormatAuto, _ Connection:="Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=\\Astc-ls-001\new_admin\File Sharing\001. KLN 1\Caseworkers\Herman\Masterlist One-Stop Portal.xlsm;Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";Jet OLEDB:System database="""";Jet OLEDB:Registry ", _ SQLStatement:="SELECT * FROM [CR Step 2 - Mail Merge List$] WHERE [ISS No#] LIKE '%-%'", _ SQLStatement1:="", SubType:=wdMergeSubTypeAccess .ViewMailMergeFieldCodes = wdToggle End With End Sub