首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自动MailMerge选择源文件

自动MailMerge选择源文件
EN

Stack Overflow用户
提问于 2022-11-15 02:59:07
回答 1查看 54关注 0票数 0

我创建了一个Word (2022)邮件合并文档。稍后,我将.docx更改为.docm,以便对生成的输出进行一些邮件后合并处理。现在我想使用VBA来选择源数据文件,但是我无法做到这一点。

然后我找到了https://stackoverflow.com/questions/61547489/automated-word-vba-mailmerge,,它准确地描述了我在VBA中想要执行的内容。在我的邮件合并文档VBA中,我现在拥有:

代码语言:javascript
复制
Private Sub Document_Open()
'    Application.ScreenUpdating = False
    Dim StrMMSrc As String
    With Application.FileDialog(FileDialogType:=msoFileDialogFilePicker)
      .Title = "Data Source Selector"
      .AllowMultiSelect = False
      .Filters.Add "Documents", "*.xls; *.xlsx; *.xlsm", 1
      .InitialFileName = ""
      If .Show = -1 Then
        StrMMSrc = .SelectedItems(1)
      Else
        GoTo ErrExit
      End If
    End With
    With ActiveDocument.MailMerge
      .OpenDataSource Name:=StrMMSrc, ReadOnly:=True, AddToRecentFiles:=False, _
        LinkToSource:=False, Connection:="Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;" & _
        "Data Source=StrMMSrc;Mode=Read;Extended Properties=""HDR=YES;IMEX=1"";", _
        SQLStatement:="SELECT * FROM 'Students'"
    End With
ErrExit:
    Application.ScreenUpdating = True

当我打开合并文档时,我可以在VBA中逐步遍历Document_Open代码。FileDialog工作正常,显示文件夹C:\Gld\RT\Office,并选择文件“Database2022-23.xlsx”。变量StrMMSrc正确地设置为我选择的文件"C:\Gld\RT\Office \RT Database2022-23 Test.xlsx“。但是,它会弹出一个窗口"Select“,它没有显示任何表。如果我放下工作簿,它会向我展示两个旧的Excel文档和一个名为“C:\Gld\RT\ Database.xls”的文档,它实际上并不存在。你知道为什么它会把"Office“文件夹和一个不存在的"Office Database.xls”文档混淆起来吗?

EN

回答 1

Stack Overflow用户

发布于 2022-11-20 01:08:15

Jonsson的评论准确地回答了这个问题。

我不知道那天出了什么问题,但是用语法

SELECT * FROM [Students$] Order by [Grade] ASC, [Last Name] ASC, [First Name] ASC

今天工作正常。

非常感谢,乔森,感谢你的时间和努力来帮助我。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74440158

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档