为什么保存并关闭工作簿时未保存页眉?

问题描述 投票:0回答:1

使用宏,我有一个工作簿,如果尚未打开,我想打开它,添加/修改页眉,然后在关闭时保存。

一切似乎都正常,直到保存并关闭部分。当我在保存工作簿之前检查时,页面标题就在那里。关闭并保存更改后,我打开工作簿,发现标题丢失了。

我使用网络驱动器,因此我尝试使用 C: 驱动器,以防万一出现网络问题(可能性极小,但我正在寻找任何原因)。 我尝试保存工作簿,重新打开它,更改页眉,然后重新保存。 我尝试在保存时重命名工作簿。 我确实需要为标头使用一个变量,因为当我运行它时它会发生变化。我在这里将其设置为“星期六”,以便使代码尽可能简单。

每次重新打开工作簿时标题都会消失。如果我手动执行此操作,这一切都有效,但在使用宏执行此操作时则无效。

    Option Explicit
    Sub Header_Test()

    Dim WB As Workbook
    Dim wPathName, wBookName, wExt, wFullPathName As String
    Dim LHeader As String
    
    wPathName = "C:\Temp\"
    wBookName = "Header Test"
    wExt = ".xlsx"
    wFullPathName = wPathName & wBookName & wExt
    LHeader = "Saturday"
    
    'Open workbook (if not open) and make it active.
    For Each WB In Workbooks
        If WB.Name = wBookName Then 'If Header Test workbook is open then make it active.
            WB.Activate
        Else
            Workbooks.Open (wFullPathName) 'Workbook isn't open so open it.
        End If
    Next WB
    
    'Add left header.
    Application.PrintCommunication = False
    With Sheets("Sheet1").PageSetup
        .LeftHeader = "&24 " & LHeader
        .HeaderMargin = Application.InchesToPoints(0.3)
        .Orientation = xlPortrait
        .PaperSize = xlPaperLetter
        .FitToPagesWide = 1
        .FitToPagesTall = 1
        .PrintErrors = xlPrintErrorsDisplayed
    End With
    
    'Save and close
    Workbooks(wBookName).Close savechanges:=True
    
    End Sub
excel vba office365 worksheet
1个回答
0
投票
  • 我已经在 M365 上测试了代码,没有标题设置问题

  • 检查打开的工作簿的代码有错误。如果工作簿

    Header Test
    打开,但它不是第一个工作簿。您的代码
    Workbooks.Open (wFullPathName)
    尝试再次打开它。

请尝试一下。

    Dim bExist As Boolean
    For Each WB In Workbooks
        If WB.Name = wBookName Then 'If Header Test workbook is open then make it active.
            WB.Activate
            bExist = True
            Exit For
        End If
    Next WB
    If Not bExist Then
        Workbooks.Open (wFullPathName) 'Workbook isn't open so open it.
    End If
© www.soinside.com 2019 - 2024. All rights reserved.