好的,我正在玩一个Word 2010模板。我在顶部有一个按钮,用户单击该按钮可以在正确的目录中自动将单词doc保存为具有(几乎)正确名称的pdf,并打开文档。我还有一个下拉表单字段,可以选择月份。
按钮的代码:
Private Sub CommandButton1_Click()
Convert_PDF
End Sub
Sub Convert_PDF()
Dim desktoploc As String
Dim filename As String
Dim date As String
Dim user As String
Dim mypath As String
desktoploc = CreateObject("WScript.Shell").SpecialFolders("Desktop")
filename = "Installs Team Metrics"
user = VBA.Environ("USERNAME")
mypath = desktoploc & "\Metrics\" & filename & " - " & date & " - " & user
ActiveDocument.ExportAsFixedFormat OutputFileName:= _
mypath, _
ExportFormat:=wdExportFormatPDF, OpenAfterExport:=True, OptimizeFor:= _
wdExportOptimizeForPrint, Range:=wdExportAllDocument, From:=1, To:=1, _
Item:=wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, _
CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, _
BitmapMissingFonts:=True, UseISO19005_1:=False
End Sub
将文件输出到C:\ Users [用户名] \ Desktop \ Metrics \安装团队指标 - [月] - [用户名] .pdf
最大的问题是,我无法弄清楚如何在下拉框中选择字符串“date”。我有一种感觉,我使用的是错误的(很确定我需要ActiveX控件)但我对VBA很新,并希望得到一些帮助。
答案 0 :(得分:0)
看起来像内容控件而不是旧版字段,因此您需要
Activedocument.Contentcontrols(ⅰ).Range.Text
我在哪里是索引号。对照(文件中的第一个是1等)
因此,您需要知道数字,或者您需要使用控件的标题或标签(或其他内容)来识别控件。在内容控件的情况下,您必须迭代集合以找到它,例如
Dim cc As ContentControl
For Each cc in ActiveDocument.ContentControls
If cc.Tag = "mytag" Then
strDate = cc.Range.Text
Exit For
End If
Next
小心标题/标记控件的方式。 Word不会强制标题或标记的唯一性。
另一种方法是使用“Date”元素创建自定义XML部件,并使用xPath将控件连接到它。然后,您可以直接从自定义XML部件检索值,并且您无需了解控件本身的任何信息。但我认为,这种简单的形式会增加你无法做到的复杂性。