3

我有一段代码写入页面的标题部分。问题是写入标头的字符串偶尔会包含一个“&”符号。这会干扰代码,因为 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 读取为字符串值并且不要不正确地应用其内容,是否会帮助正确调暗事物?

4

1 回答 1

1

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

aString = Replace(aString, "&", "&&")

ActiveSheet.PageSetup.CenterHeader = "&B&14 Cool New Header for &16 &I" & _
    vbNewLine & aString 
于 2012-08-23T14:54:18.740 回答