Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 在VBA for Excel中,当字符串包含'&';_String_Syntax_Excel_Header_Vba - Fatal编程技术网

String 在VBA for Excel中,当字符串包含'&';

String 在VBA for Excel中,当字符串包含'&';,string,syntax,excel,header,vba,String,Syntax,Excel,Header,Vba,我有一段代码写入页面的标题部分。问题是写入头中的字符串偶尔包含“&”符号。这会干扰代码,因为VBA会自动将以下字符视为一段代码,即使它是字符串的一部分 ActiveSheet.PageSetup.CenterHeader = "&B&14 Cool New Header for &16 &I" & vbNewLine & aString aString没有“&”符号时,一切都很好。我得到一个粗体的,14号的顶行,然后是16号的,斜体的,在第二行的

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

ActiveSheet.PageSetup.CenterHeader = "&B&14 Cool New Header for &16 &I" & vbNewLine & aString
aString没有“&”符号时,一切都很好。我得到一个粗体的,14号的顶行,然后是16号的,斜体的,在第二行的阿斯特文本

如果aString类似于“B&S伟大公司”,则标题将显示“伟大公司”,因为字符串中包含“&S”

ActiveSheet.PageSetup.CenterHeader = "&B&14 Cool New Header for &16 &I" & vbNewLine & aString
我怎样才能避开这件事?我会在字符串中搜索“&S”,并通过插入另一个&S来手动补偿,以将其取消,但&S可能不是唯一出现的“&”符号


最好的办法是什么?通过告诉excel仅将aString作为字符串值读取,并且不要不正确地应用其内容,适当地减小大小会有所帮助吗?

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

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

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

我的第一次尝试没有成功,但我发现了我的问题。你的代码运行得很好。谢谢