我有这个 vba 脚本,它在 Excel 文件的 header 中写入一些信息。遗憾的是,它没有更新左右 header 中已写入的内容,尽管我在再次写入之前将 header 设置为空。 (见下面的代码和图片)
有人知道出了什么问题吗? 提前致谢!
ActiveSheet.PageSetup.LeftHeader = ""
ActiveSheet.PageSetup.CenterHeader = ""
ActiveSheet.PageSetup.RightHeader = ""
ActiveSheet.PageSetup.LeftHeader = Zeichnung '.Value
ActiveSheet.PageSetup.CenterHeader = Bezeichnung '.Value
ActiveSheet.PageSetup.RightHeader = index_kpl '.Value
编辑: 另外,似乎旧字符串的最后两个字符被删除。如果我提前删除最后两个字符,它会删除两个额外的字符。
编辑2: 如果我一步一步运行脚本,它就会起作用。
如果我启用/禁用 ScreenUpdate,它不会产生任何效果。
编辑3 在清除和写入 header 之间等待(Application.wait())也没有帮助。
编辑4 整个代码如下(george86请求):
Sub ausdrucken()
Sheets("alle_Zuweisungen").Select
Bezeichnung = ActiveWorkbook.Sheets("Steuerung").Range("J3").Value
Bezeichnung = CStr(Bezeichnung & "")
Zeichnung = ActiveWorkbook.Sheets("Steuerung").Range("J4").Value
Zeichnung = CStr(Zeichnung) ' & "")
aktueller_Index = ActiveWorkbook.Sheets("Steuerung").Range("J5").Value
index_kpl = "Änderungsindex " & aktueller_Index
index_kpl = CStr(index_kpl & "")
benutze_Zeilen = ActiveSheet.UsedRange.Rows.Count
PrintArea = "A4" & ":" & "J" & benutze_Zeilen
ActiveSheet.PageSetup.PrintArea = PrintArea '"PrintArea:PrintArea"
'Application.PrintCommunication = False
ActiveSheet.PageSetup.LeftHeader = ""
ActiveSheet.PageSetup.CenterHeader = ""
ActiveSheet.PageSetup.RightHeader = ""
Application.Wait (2)
ActiveSheet.PageSetup.LeftHeader = ""
ActiveSheet.PageSetup.CenterHeader = ""
ActiveSheet.PageSetup.RightHeader = ""
'Application.Wait (1)
'newHour = Hour(Now())
'newMinute = Minute(Now())
'newSecond = Second(Now()) + 2
'waitTime = TimeSerial(newHour, newMinute, newSecond)
'Application.Wait waitTime
ActiveSheet.PageSetup.LeftHeader = Zeichnung 'CStr("&L" & Zeichnung) '.Value
ActiveSheet.PageSetup.CenterHeader = Bezeichnung ' CStr("&C" & Bezeichnung) '.Value
ActiveSheet.PageSetup.RightHeader = index_kpl 'CStr("&R" & index_kpl) '.Value
Debug.Print (Zeichnung)
Debug.Print (Bezeichnung)
Debug.Print (index_kpl)
Application.ScreenUpdating = True
最佳答案
非常感谢您的建议!
我找到了解决方案。 从我之前录制的宏中,有一行 Application.PrintCommunication = False
...在代码中。 移除后,它会按您的预期工作。
关于excel - 使用 vba 更新 Excel 中的标题,不会覆盖现有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50950566/