我有一个从互联网上摘录的 VBA 脚本。它获取单元格的内容并将其放入适当的标题中。这正是我需要的。
Sub InsertHeaderFooter()
' inserts the same header/footer in all worksheets
Dim ws As Worksheet
Application.ScreenUpdating = False
For Each ws In ActiveWorkbook.Worksheets
Application.StatusBar = "Changing header/footer in " & ws.Name
With ws.PageSetup
.LeftHeader = vbCr & vbCr & vbCr &B &9 & Range("J2").Text & vbCr & vbCr & Range("J3").Text & vbCr & Range("J4").Text & vbCr & Range("J5")
.CenterHeader = vbCr & vbCr & vbCr & Range("J1").Text
End With
Next ws
Set ws = Nothing
Application.StatusBar = False
End Sub
我遇到的问题是通过 VBA 脚本格式化标题。我发现格式化文档。 我不知道在脚本中哪里使用 &B 表示粗体或 &nn 表示字体大小。我将其放在每个地方都会破坏脚本。
答案1
在您的代码行中,.LeftHeader = ...
您基本上为 Excel 提供了一个字符串。
在 VBA 中,字符串必须用 引用,"
除非它是内部 VB 常量(例如vbCr
)或变量(例如Range("J2").Text
)。
因此,尝试以下这一行:
.LeftHeader = vbCr & vbCr & vbCr & "&B &9" & Range("J2").Text & vbCr & vbCr & Range("J3").Text & vbCr & Range("J4").Text & vbCr & Range("J5")
这将向 Excel 传递一个字符串,该字符串包含输入、范围内的值 - 以及文本“&B &9”,Excel 会将其解析为粗体和其他内容(不知道 &9 代表什么)