在embedded的.docx(Word)文件上运行Excel中的邮件合并

请帮忙解决这个问题,因为我被困在最后一个阶段,试图在下面的代码中正确定义我的variables。

我想按顺序执行以下操作:

  1. 点击“CommandButton1”button
  2. 然后将打开一个名为“CR_MMFormTest”的embedded式文档(目前已经完成的没有数据源的mergefields)
  3. VBA帮助我创build一个窗体的副本,并将其用于….
  4. 调用函数DistrictMailMerge

我遇到的问题在于3号和4号。

  1. 副本脚本不适用于embedded的文档。 它会说

运行时错误'5174':对不起,我们无法find您的文件。 是移动,重命名还是删除?

  1. 我无法使用函数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