问题
我正在通过 VBA 使用一些 Excel 切片器,并且需要同时过滤(不同数量的)项目。
然而,切片器命令包括“”和“&”字符,这显然是有问题的。
我尝试单独处理 """和 "&"字符,例如 "Some text" & """ & str1 & "&" & "more text"
,以及尝试将它们捆绑在一起,例如 "Some text"" & str1 & "&more text"
这两种方法似乎都不起作用,会产生“编译错误:预期:语句结束”。
问题
有没有更好的方法在串联中包含“&”和“””字符?
更多内容
这是我试图结束的实际字符串布局,在所有连接完成之后:
"[Jobs].[ParentJob].&[Code1]", "[Jobs].[ParentJob].&[Code2]", "[Jobs].[ParentJob].&[Code3]"
Jobs 和 ParentJob 保持不变的地方(它们是切片器类别,应该是字符串的一部分);但是 Code1、Code2 等......是在循环运行时被一一连接的变量。
我有信心运行循环并在正确的位置连接正确的部分,我只是无法在任何地方找到任何资源来解释如何在更复杂的格式中包含 "和 & 在连接中。
最佳答案
对于单个 "
我通常使用 """"
(4 双引号)。
这很烦人,但效果很好。因此,对于您的测试,如果我这样做:Debug.Print """" & "[Jobs].[ParentJob].&[Code1]" & """" & ", " & """" & _
"[Jobs].[ParentJob].&[Code2]" & """" & ", " & """" & "[Jobs].[ParentJob].&[Code3]" & """"
在中间窗口中,我得到输出文本:"[Jobs].[ParentJob].&[Code1]", "[Jobs].[ParentJob].&[Code2]", "[Jobs].[ParentJob].&[Code3]"
希望这可以帮助
更新 : 对于字符 &
只要在双引号之间就没有问题。将其作为任何其他字 rune 本处理。这样做"&"
将返回 &
做"[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
这将输出您需要的文本,但使用它更容易并使代码可读。
关于excel - 连接包含 "和 & 字符的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57570006/