【发布时间】:2017-08-15 02:13:23
【问题描述】:
我很难理解如何在 VBA 中的字符串中放置双引号 (")。我知道我可以使用 char(34) 函数轻松地做到这一点。我也明白这样做的另一种方式是使用4个双引号:""""。所有这些都来自之前的SO帖子:
How do I put double quotes in a string in vba?
但是,我的问题是.... 为什么需要 4 个引号?前两个是否充当转义符,第三个是引用本身,第四个是终止引用?还是它以不同的方式工作?我还没有找到关于 VBA 如何处理这些双引号的具体答案。
我还注意到,如果我尝试在字符串中添加或删除双引号的数量,Visual Studio 将动态添加或删除双引号。例如,我最初有以下字符串:
data = TGName + """ + iterator.Value + """
...在消息框中产生以下内容:
但是,如果我尝试将字符串末尾的第二组双引号 (+ """) 从 3 调整为 4,Visual Studio 会自动将其调整为 5。我无法在结束。这是消息框中的结果字符串:
消息框中的字符串不是我希望的实际输出,它们纯粹是出于实验目的。但是,我注意到的是,显然对 VBA 中字符串中允许的引号数量有要求。有谁知道这个要求是什么?为什么 IDE 会在第二个字符串中强行插入额外的引号?有人可以解释我描述的两种情况下实际字符串内容和格式引号之间的区别吗?
与往常一样,我们将不胜感激任何帮助:)
【问题讨论】:
-
我最好的猜测是字符串中的引号数不可能是偶数。这可能是由于一对引号被视为一个字符串,并且在四个引号的情况下,它将被视为两组“”,这只会导致两个空字符串。它可能试图通过确保只有奇数的字符串来克服这个问题。老实说,我不能确定这是否正是正在发生的事情,但逻辑是最有意义的。另外,为什么不避免头痛呢?使用 Chr(34),这样你就能得到你想要的(特别是因为你注意到你知道这一点。)
标签: vba excel double-quotes