如何在Excel中创建包含双引号的字符串或公式?

我如何在Excel公式中构造以下字符串:

莫里斯·“火箭”;理查德。

如果我使用单引号,它是微不足道的:="Maurice 'The Rocket' Richard"但双引号呢?

559496 次浏览

你试过用额外的双引号转义吗?通过转义字符,您正在告诉Excel处理"文字。

= "Maurice ""The Rocket"" Richard"

或者,你可以使用CHAR函数:

= "Maurice " & CHAR(34) & "Rocket" & CHAR(34) & " Richard"

将适用于使用.Formula = "=THEFORMULAFUNCTION("STUFF")"的宏 就像这样: 这将工作的宏使用.Formula = "=THEFORMULAFUNCTION(CHAR(34) & STUFF & CHAR(34))"

我为此使用了一个函数(如果工作簿已经有VBA)。

Function Quote(inputText As String) As String
Quote = Chr(34) & inputText & Chr(34)
End Function

这是来自Sue Mosher的书《Microsoft Outlook Programming》。那么公式是:

="Maurice "&Quote("Rocket")&" Richard"

这类似于戴夫DuPlantis发布的内容。

三个双引号:" " " x " " " = "x" Excel将自动更改为一个双引号。例如:

=CONCATENATE("""x"""," hi")

= "x"嗨

VBA函数

1) .Formula =" ="" theformulfunction ""&(CHAR(34) &”“东西”,CHAR(34))”

2) .公式= "公式函数""东西""" "

第一种方法使用vba在单元格中编写公式,从而得到计算值:

 THEFORMULAFUNCTION "STUFF"

第二种方法使用vba在单元格中写入字符串,其结果为:

 THEFORMULAFUNCTION "STUFF"

Excel结果/公式

1) =" theformulfunction "&(CHAR(34) &“东西”,CHAR (34))

2)公式功能“东西”

如果你需要使用JSON:

=CONCATENATE("'{""service"": { ""field"": "&A2&"}}'")
< p >使用装备(34) 代码:< / p >
    Joe = "Hi there, " & Chr(34) & "Joe" & Chr(34)
ActiveCell.Value = Joe

结果:

    Hi there, "joe"

返回空字符串或零长度字符串(例如"")以使单元格显示为空白是工作表公式中的常见做法,但在VBA中通过的范围内。公式的范围内。FormulaR1C1属性插入公式时重新创建该选项是笨拙的,因为必须在带引号的字符串中对双引号字符进行双引号。

工作表的本地短信功能可以在不使用引号的情况下产生相同的结果。

'formula to insert into C1 - =IF(A1<>"", B1, "")
range("C1").formula = "=IF(A1<>"""", B1, """")"         '<~quote chars doubled up
range("C1").formula = "=IF(A1<>TEXT(,), B1, TEXT(,))"   '<~with TEXT(,) instead

在我看来,使用TEXT(,)代替""甚至可以清除上面这样一个简单的公式。当在更复杂的公式中使用时,这些好处变得越来越显著,比如将空字符串添加到VLOOKUP中,以避免在查找结果为空白时向单元格返回0,或者在与IFERROR不匹配时返回空字符串。

'formula to insert into D1 - =IFERROR(VLOOKUP(A1, B:C, 2, FALSE)&"", "")
range("D1").formula = "=IFERROR(VLOOKUP(A1, B:C, 2, FALSE)&"""", """")"
range("D1").formula = "=IFERROR(VLOOKUP(A1, B:C, 2, FALSE)&TEXT(,), TEXT(,))"

随着TEXT(,)取代旧的传递空字符串的""方法,您可能会停止使用算盘来确定公式字符串中引号字符的数量是否正确。

="Maurice "&"""TheRocker"""&" Richard"

还有另一种方法,不过更多的是“如何在Excel公式中构造以下字符串:“Maurice”“火箭”“Richard””而不是“如何在Excel公式中创建包含双引号的字符串?”,这就是简单地使用两个单引号:

SO216616 example

左边是从Excel工作表中截取的Calibri,右边是从VBA窗口中截取的。 在我看来,@YonahW提到的转义“轻而易举”,但两个单引号并不比两个双引号输入更多,在VBA中没有额外的击键,区别是相当明显的,而在电子表格中可能不明显

连接"作为一个独立的单元格:

    A |   B   | C | D
1   " | text  | " | =CONCATENATE(A1; B1; C1);


D1 displays "text"

以下公式适用于Excel和Numbers (MAC):

= "Maurice " & """" & "The Rocket" & """" & " Richard"

使用,““““,来获得一个双引号包围你的字符串。