【问题标题】:Populate Local Branch Address in Footer在页脚中填充本地分支地址
【发布时间】:2022-06-14 04:23:07
【问题描述】:

我想要一个 Word 文档模板,该模板在打开时会请求办公地点名称,然后在页脚中输入该地点的正确地址和电话号码。

我想使用下拉列表来选择位置,即 I.E.丹佛、洛杉矶、旧金山、纽约等。然后让代码在页脚中输入地址和电话号码。

我可以获得将地址或电话号码放在页脚但不堆叠的代码。最后一个覆盖第一个。

Sub FooterAddress()

 FooterAddress Macro

With ActiveDocument.Sections(1)

  .Footers(wdHeaderFooterPrimary).Range.Text = "Local Office City"
  .Footers(wdHeaderFooterPrimary).Range.Text = "123 My Street | City, ST 12345-6789"
  .Footers(wdHeaderFooterPrimary).Range.Text = "Phone 800.123.4567"
 
End With

End Sub

我尝试使用页眉和页脚的格式代码来选择字体并使文本居中,但出现了错误。还没有尝试更改颜色。

我无法获得启动脚本的下拉菜单,也无法获得打开时启动下拉菜单的模板。

【问题讨论】:

  • 我将本地信息放入通用模板的方法是使用本地全局模板,该模板包含特定于位置(地址、电话号码、经理姓名)的自动图文集条目,并在创建新文档时将更新的模板。

标签: vba ms-word


【解决方案1】:

例如:

Sub FooterAddress()
Application.ScreenUpdating = False
ActiveDocument.Sections(1).Footers(wdHeaderFooterPrimary).Range.Text = _
  "Local Office City" & vbCr & _
  "123 My Street | City, ST 12345-6789" & vbCr & _
  "Phone 800.123.4567"
Application.ScreenUpdating = True
End Sub

【讨论】:

    【解决方案2】:

    在页脚中,为每一行创建书签(Insert>Bookmark)。然后写入书签:

    ActiveDocument.Sections(1).Footer(wdHeaderFooterPrimary).Range.Bookmarks("Bookmarkname").Range.Text = "AddressText"
    

    【讨论】:

      【解决方案3】:

      您可以在模板中设置页脚并根据需要设置格式,这样您就不需要在代码中应用格式。

      将光标放在您希望办公室地址所在的位置,然后转到插入 |快速零件 |文档属性 |公司地址。在不更改选择的情况下,转到 Developer 选项卡并单击 Properties 以显示 Content Control Properties 对话框。点击“允许回车”框,如下图,点击确定。

      现在将光标移动到电话号码所在的位置,并使用与添加公司电话之前相同的菜单。您无需对此内容控件执行任何其他操作。

      您可以使用下面的代码来设置内容控件的值。

      Public Sub WriteOfficeAddress(ByVal officeAddress As String, ByVal officePhone As String)
        Dim cxpTarget                   As CustomXMLPart
        Dim strNamespace                As String
      
        strNamespace = "http://schemas.microsoft.com/office/2006/coverPageProps"
        strNodeName = "/ns0:CoverPageProperties[1]/ns0:"
        Set cxpTarget = ActiveDocument.CustomXMLParts.SelectByNamespace(strNamespace).Item(1)
        cxpTarget.SelectSingleNode(strNodeName & "CompanyAddress").Text = officeAddress
        cxpTarget.SelectSingleNode(strNodeName & "CompanyPhone").Text = officePhone
      
      End Sub
      

      为了让您的代码响应从您的模板创建的新文档,您需要将代码添加到 ThisDocument 模块中。使用代码窗口顶部的下拉菜单创建一个 Document New 事件,如下所示。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-11-19
        • 1970-01-01
        • 2014-10-30
        • 2015-03-22
        • 1970-01-01
        • 2022-01-08
        相关资源
        最近更新 更多