【问题标题】:In VBA for Excel, How can I manipulate a header/footer when the string contains '&'在 VBA for Excel 中,当字符串包含“&”时,如何操作页眉/页脚
【发布时间】:2012-08-23 14:49:56
【问题描述】:

我有一段代码写入页面的标题部分。问题是写入标头的字符串偶尔会包含“&”符号。这会干扰代码,因为 VBA 会自动将 & 和后面的字符视为一段代码,即使它是字符串的一部分。

ActiveSheet.PageSetup.CenterHeader = "&B&14 Cool New Header for &16 &I" & vbNewLine & aString

当 aString 中没有“&”符号时,一切都很好。我得到一个粗体、14 号的顶行,然后是 16 号、斜体的 aString 文本在第二行。

如果 aString 类似于“B&S Company of Greatness”,则标题将出现“Company of Greatness”,因为字符串中包含“&S”。

我该如何解决这个问题?我会在字符串中搜索 '&S 并通过插入另一个 &S 来手动进行补偿以将其取消,但 &S 可能不是唯一出现的 '&' 符号。

解决此问题的最佳方法是什么?通过告诉 excel 仅将 aString 读取为字符串值并且不要不正确地应用其内容,是否会帮助正确调暗事物?

【问题讨论】:

    标签: string syntax excel header vba


    【解决方案1】:

    您需要通过向字符串中的每个实例添加第二个 & 符号来转义 & 符号,如下所示:

    aString = Replace(aString, "&", "&&")
    
    ActiveSheet.PageSetup.CenterHeader = "&B&14 Cool New Header for &16 &I" & _
        vbNewLine & aString 
    

    【讨论】:

    • 我的第一次尝试没有成功,但我发现了我的问题。您的代码运行良好。谢谢!!
    猜你喜欢
    • 2016-03-09
    • 1970-01-01
    • 2016-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多