Steve创建的文档要求在文档的第一页和第二页的页眉和法律标题中列出该文件的文件名。他创建了一个宏,在标题中键入文件名后,将其复制并粘贴到标题中适当位置的文本表单字段中。他的下一个文档组装步骤是使用“另存为”命令保存文档。要使用在标题和标题中输入的相同文件名保存文档。

手动执行此操作时,Steve将显示“另存为”对话框,将文件名粘贴到其中,然后单击“保存”。他试图创建宏代码以添加此“另存为”步骤,但无法弄清楚该如何做。当Word记录手动步骤时,史蒂夫会得到以下内容:

ActiveDocument.SaveAs FileName:="04562.sw.doc

这表明Word在记录执行手动步骤时使用的特定文件名,但是Steve希望根据文档标题中的内容使用其他文件名。当运行宏时,该信息(文件名)恰好位于剪贴板中,因此也有可能从剪贴板中获取信息,但是史蒂夫也无所适从。

由于Steve已经有了一个宏来复制文件名,并且他对该宏感到满意,因此只需对其代码进行几处更改即可使用适当的名称保存文件。尝试将以下代码添加到现有宏的适当位置:

Dim strTemp As String Dim MyData As DataObject Set MyData = New DataObject

MyData.GetFromClipboard strTemp = MyData.GetText(1)

ActiveDocument.SaveAs FileName:=Trim(strTemp) & ".doc"

只要剪贴板中有您要用于文件名的文本字符串,此代码就应该起作用。甚至将.Doc扩展名添加到剪贴板中字符串的末尾。此代码要求您在VBA编辑器中设置Microsoft窗体的引用。

(从编辑器的“工具”菜单中选择“引用”。)

当然,应该指出,您可能想重新考虑使用此宏的方法。实际上,如果完全采用其他方法,则可以摆脱大多数代码。例如,您可以让人们首先保存文档,然后通过使用字段在文档本身中引用文件名。 (FILENAME字段可用于此目的。)

除了使用宏将文件名复制到文档的第一页和第二页之外,还可以使用定义的样式(例如DocTitle或DocName)来引用文件名,然后在您的其他位置使用STYLEREF字段文档以引用该名称。这样,只需输入一次即可,并且不需要宏。您可以在Word MVP网站的此页面上找到在文档的不同区域中重复数据的多种方式:

http://gregmaxey.mvps.org/Repeating_Data.htm

您还可以创建一个UserForm来收集用户的数据(以获得所需的文件名),然后将文档保存为该名称。

然后,宏可以将文件名分配给TITLE字段,并且在文档中引用TITLE字段的任何地方都会自动显示用户输入的文件名。

注意:

如果您想知道如何使用此页面(或_WordTips_网站上的任何其他页面)中描述的宏,我准备了一个包含有用信息的特殊页面。

_WordTips_是您进行经济有效的Microsoft Word培训的来源。

(Microsoft Word是世界上最流行的文字处理软件。)本技巧(453)适用于Microsoft Word 97、2000、2002和2003。您可以找到用于Word(Word 2007)的功能区界面的本技巧的一个版本。和更高版本)在这里: