Excel 如何在VBA宏中告诉MS Word,如果它发现;“文本”;它应该写在下面“我”;文本2“;

Excel 如何在VBA宏中告诉MS Word,如果它发现;“文本”;它应该写在下面“我”;文本2“;,excel,vba,ms-word,Excel,Vba,Ms Word,我使用MS Word中的邮件制作文档,用Excel中的数据填充其模板 Sub autofill() Dim numRecord As Integer numRecord = InputBox("Enter number:") Set deMain = ActiveDocument.MailMerge.DataSource If deMain.FindRecord(FindText:=numRecord, Field:="Number") = True Then numRecord =

我使用MS Word中的邮件制作文档,用Excel中的数据填充其模板

Sub autofill()

Dim numRecord As Integer
numRecord = InputBox("Enter number:")
Set deMain = ActiveDocument.MailMerge.DataSource

If deMain.FindRecord(FindText:=numRecord, Field:="Number") = True Then
    numRecord = deMain.ActiveRecord
End If

End Sub
现在我想知道他的名字,把他的号码加在某个地方


例如,如果“Name”是“John”,我想写“885”,如果“Name”是“Mary”,我想写“775”,但我在excel中没有这些数字,我不想让它们出现在那里?

最简单的方法是在邮件合并主文档中的数字所在位置插入一个FILLIN字段。此类字段可编码为:

{FILLIN "Input the number" \d ""}

注意:上述示例中的字段大括号对(即“{}”)都是在文档本身中通过Ctrl-F9(Mac上的Cmd-F9,或者如果使用笔记本电脑,则可能需要使用Ctrl-Fn-F9)创建的;您不能简单地在此邮件中键入或复制粘贴它们。或者,您可以通过insert | Quick Parts | field>Fillin来插入字段。

那么这些数字是从哪里来的呢?我不确定我是否遵循了结果应该是什么样子。数字来自我。我不希望它们出现在excel表格中。我想把它们写进代码里。例如:如果name==“John”(number=885)。如果有帮助的话,我可以附上照片?好吧,这不是用户输入(因为你有一个写着“输入号码”的框),你已经知道,哪个名字有哪个号码。您可以将它们放入代码中,但为什么不使用隐藏的Excel工作表呢?关联数据是Excel的工作。你不使用它的原因是什么?我没想过隐藏床单。但是我不知道如何告诉这个词去搜索所有的表格。我只能从“选择收件人”中选择一张工作表。我不希望它出现在excel中的原因是,它是一个共享文档,不允许输入不在其中的数据。您正在使用的邮件合并只能使用一个工作表作为数据源。