首先在这里是我的代码。表选择错误与邮件合并从Excel到Word
Sub RunMerge()
' Word constants
Dim wd As Object
Dim wdocSource As Object
Dim strWorkbookName As String
On Error Resume Next
Set wd = GetObject(, "Word.Application")
If wd Is Nothing Then
Set wd = CreateObject("Word.Application")
End If
On Error GoTo 0
Set wdocSource = wd.Documents.Open(ThisWorkbook.Path & "\AAFCAAC-#4077508-v1-AAFC-FFPB-COPE-SATD-_AgriInnovation_Draft_Survey_Instructions_189318.doc")
strWorkbookName = ThisWorkbook.Path & "\" & "MD.xlsm"
wdocSource.MailMerge.MainDocumentType = wdFormLetters
wdocSource.MailMerge.OpenDataSource _
Name:=strWorkbookName, _
AddToRecentFiles:=False, _
Revert:=False, _
Format:=wdOpenFormatAuto, _
Connection:="Data Source=" & strWorkbookName, _
SQLStatement:="SELECT * FROM 'Mail Merge Data$'"
With wdocSource.MailMerge
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
With .DataSource
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With
.Execute Pause:=False
End With
wd.Visible = True
wdocSource.Close SaveChanges:=False
Set wdocSource = Nothing
Set wd = Nothing
End Sub
我想要从excel到Word的邮件合并。我的问题(我相信)是用SQLStatement:=“SELECT * FROM'邮件合并数据$'”当我运行我的代码时,excel进入了等待单词的等待状态。当我进入我的任务管理器时,我发现单词在选择一张桌子时停滞不前。表选择菜单中没有选项,指定的工作簿只是我的工作簿的路径,并在末尾附加了.xls。如果我删除了SQLStatement行,则会发生同样的情况,但是选择表在工作簿中填充了工作表和名称范围。我希望这是一个小错误或我的错字。
只给多一点信息。如果我删除SQLStatement行并转到我的任务管理器以选择“表格选择”过程(只能使用任务管理器选择它)并选择正确的工作表,那么程序的其余部分将顺利运行。 – Tolure