连接包含 " 和 & 字符的字符串



>问题

我正在通过VBA使用一些Excel切片器,并且需要同时过滤(不同数量的(项目。

但是,切片器命令包括""和"&"字符,这显然是有问题的。

我尝试单独处理""和"&"字符,例如"Some text" & """ & str1 & "&" & "more text",以及试图将它们捆绑在一起,例如"Some text"" & str1 & "&more text"

这两种方法似乎都不起作用,会生成"编译错误:预期:语句结束"。


问题

有没有更好的方法在串联中包含"&"和""字符?


更多背景

这是在所有连接完成后我试图结束的实际字符串布局:

"[Jobs].[ParentJob].&[Code1]", "[Jobs].[ParentJob].&[Code2]", "[Jobs].[ParentJob].&[Code3]"

其中JobsParentJob保持不变(它们是切片器类别,应该是字符串的一部分(;但 Code1、Code2 等是循环运行时要逐个连接的变量。

我有信心运行循环并在正确的位置连接正确的部分,我只是在任何地方都找不到任何资源来解释如何在它们以更复杂的格式时在连接中包含" and &。

对于单个",我通常使用""""(4个引号(。

这很烦人,但效果很好。所以对于你的测试,如果我这样做:

Debug.Print """" & "[Jobs].[ParentJob].&[Code1]" & """" & ", " & """" & _ "[Jobs].[ParentJob].&[Code2]" & """" & ", " & """" & "[Jobs].[ParentJob].&[Code3]" & """"

在中间窗口中,我得到文本作为输出:

"[Jobs].[ParentJob].&[Code1]", "[Jobs].[ParentJob].&[Code2]", "[Jobs].[ParentJob].&[Code3]"

希望这有帮助

更新:对于字符&只要在双引号之间就没有问题。像处理任何其他字符文本一样处理它。所以做"&"&,做"[Jobs].[ParentJob].&[Code1]"会回来[Jobs].[ParentJob].&[Code1]

更新 2:使代码更具可读性的另一个选项是将""""分配给字符串变量。像这样:

Dim DblQuote As String
DblQuote = """"
Debug.Print DblQuote & "[Jobs].[ParentJob].&[Code1]" & DblQuote & ", " & DblQuote & _
"[Jobs].[ParentJob].&[Code2]" & DblQuote & ", " & DblQuote & "[Jobs].[ParentJob].&[Code3]" & DblQuote

这将输出您需要的文本,但更容易使用它并使代码可读。

您可以选择按照@foxfire的建议使用多个引号。但我也建议在 VBA 中使用CHR 函数

在VBA中,你可以分别使用Chr(38(和Chr(34(表示"&"和(双引号-"(。 即:

Chr(38( = &
and
Chr(34(= ">

最新更新