Excel VBA-页脚不';无法通过代码正确更新

Excel VBA-页脚不';无法通过代码正确更新,excel,vba,Excel,Vba,在编写代码通过VBA更新页脚中的自定义编号时,我遇到了一个奇怪的行为。我正在使用Excel 365 目标:将自定义页码写入每张图纸 我已经写了下面的代码,在一定程度上有效 Sub TestHdrFooter() Dim wksCurr As Worksheet Dim lngPageBase As Long, lngShtLen As Long Dim strBaseDocNumb As String, strRev As String, strExpr As String lngPageBa

在编写代码通过VBA更新页脚中的自定义编号时,我遇到了一个奇怪的行为。我正在使用Excel 365

目标:将自定义页码写入每张图纸

我已经写了下面的代码,在一定程度上有效

Sub TestHdrFooter()
Dim wksCurr As Worksheet
Dim lngPageBase As Long, lngShtLen As Long
Dim strBaseDocNumb As String, strRev As String, strExpr As String

lngPageBase = 2
strBaseDocNumb = "DOC-99-100000-AA-9999-99999"
strRev = "01"
lngShtLen = Len("0005")

For i = 1 To ThisWorkbook.Sheets.Count
    Set wksCurr = ThisWorkbook.Sheets(i)
    With wksCurr.PageSetup
        '\\ Reset footer if something has been accidentally entered
        .LeftFooter = ""
        .CenterFooter = ""
        .RightFooter = ""
        
        If Len(CStr(lngPageBase)) = 1 Then
            .RightFooter = strBaseDocNumb & "-" & Application.Rept("0", lngShtLen - 1) & " &[Page]+" & lngPageBase & "-" & strRev
        Else
            .RightFooter = strBaseDocNumb & "-" & Application.Rept("0", lngShtLen - 2) & " &[Page]+" & lngPageBase & "-" & strRev
        End If
        
        lngPageBase = lngPageBase + .Pages.Count
    End With
Next i
End Sub
但是,当我通过
页面设置>>页眉/页脚打开它时,它不能直接正确更新,我看到它显示如下,没有代码中可用的左括号

然后是陌生人的部分。当我打开表单上的“自定义页脚”对话框时,它会显示缺少的括号,然后在关闭此对话框时只需按“确定”即可正确更新所有内容,而无需更改任何内容!我猜不出这种行为的原因

问题:

  • 我的VBA代码有什么问题需要修改吗

  • 如果代码正确,有没有办法强制刷新第二个屏幕截图中出现的表达式


  • 我应该在发布问题之前阅读微软的文档。我的代码表达式虽然从字面上看是正确的,但它不是通过VBA使用它的正确方法

    不正确的表达:

    .righfooter=strBaseDocNumb&“-”和Application.Rept(“0”,lngShtLen-1)和“&[Page]+”&lngPageBase&“-”和strev

    正确表达:

    .righfooter=strBaseDocNumb&“-”和Application.Rept(“0”,lngShtLen-1)和“&p+”&lngPageBase&“-”和strev

    请注意页面部分中的更改。MS文档中明确提到了这一点