excel - 使用 vba 更新 Excel 中的标题,不会覆盖现有值

标签 excel vba header

我有这个 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

first

second

third

最佳答案

非常感谢您的建议!

我找到了解决方案。 从我之前录制的宏中,有一行 Application.PrintCommunication = False

...在代码中。 移除后,它会按您的预期工作。

关于excel - 使用 vba 更新 Excel 中的标题,不会覆盖现有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50950566/

相关文章:

c++ - OOP C++ - 错误,因为 A.h 包含 B.h,B.h 又包含 A.h

json - 如何使用 VBA 从 url 导入 json 数据?

excel - 将 Dir 与旧文件后缀一起使用

c++ - 在 Mac OSX 下找不到 hash_map header

c# - Excel将我的数字的最后一位更改为零

excel - VBA:可以在运行时配置一组 "constants"吗?

css - 标题标签干扰 css 计数器标题

Excel:在隐藏单元格中查找数据(不取消隐藏)

Excel 电子邮件挂起 Outlook 直到发送 - 错误处理?

c# - 无法将 'System.__ComObject' 转换为 'System.Web.UI.WebControls.ListItem