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

时间:2008-10-19 16:29:43

标签: excel excel-formula

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

  

莫里斯“火箭队”理查德

如果我使用单引号,那么它很简单= "Maurice 'The Rocket' Richard"但是双引号怎么样?

12 个答案:

答案 0 :(得分:436)

您是否尝试使用双引号转义?

= "Maurice ""The Rocket"" Richard"

答案 1 :(得分:142)

或者,您可以使用CHAR功能:

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

答案 2 :(得分:21)

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

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

=“x”hi

答案 3 :(得分:7)

我为此使用了一个函数(如果工作簿已经有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"

这与Dave DuPlantis发布的内容类似。

答案 4 :(得分:6)

如果您需要使用JSON执行此操作:

=CONCATENATE("'{""service"": { ""field"": "&A2&"}}'")

答案 5 :(得分:4)

使用chr(34) 码:     乔="你好," &安培; Chr(34)& "乔" &安培; CHR(34)     ActiveCell.Value = Joe

结果:     你好,"乔"

答案 6 :(得分:1)

这适用于使用.Formula = "=THEFORMULAFUNCTION("STUFF")"的宏 所以它会是这样的: 这适用于使用.Formula = "=THEFORMULAFUNCTION(CHAR(34) & STUFF & CHAR(34))"

的宏

答案 7 :(得分:1)

返回空或零长度字符串(例如"")以使单元格显示为空白是工作表公式中的常见做法,但在通过Range.Formula或{插入公式时重新创建该选项由于必须在引用的字符串中加倍双引号字符,因此VBA中的{3}}属性很难实现。

工作表的原生Range.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(,)代替""清除一个像上面那样简单的公式。当在更复杂的公式中使用时,好处变得越来越重要,例如将空字符串附加到TEXT function以避免在查找导致空白或在不匹配时返回空字符串时将零返回到单元格与VLOOKUP

'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(,)替换传递空字符串的旧""方法,您可能会停止使用算盘来确定公式字符串中是否包含正确数量的引号字符。

答案 8 :(得分:1)

"连接为单独的单元格:

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

D1 displays "text"

答案 9 :(得分:0)

VBA功能

1).Formula =“=”“THEFORMULAFUNCTION”“&amp;(CHAR(34)&amp;”“STUFF”“&amp; CHAR(34))”

2).Formula =“THEFORMULAFUNCTION”“STUFF”“”

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

 THEFORMULAFUNCTION "STUFF"

第二种方法使用vba在单元格中写入一个字符串,该字符串产生值:

 THEFORMULAFUNCTION "STUFF"

Excel结果/公式

1)=“THEFORMULAFUNCTION”&amp;(CHAR(34)&amp;“STUFF”&amp; CHAR(34))

2)THEFORMULAFUNCTION“STUFF”

答案 10 :(得分:0)

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

答案 11 :(得分:0)

还有另一种方法,但更多的是“如何在Excel公式中构造以下字符串:”Maurice“The Rocket”Richard“”比“如何在Excel公式中创建包含双引号的字符串?”,这是只需使用两个单引号:

SO216616 example

左边是Calibri从Excel工作表中剪切,右边是来自VBA窗口的剪辑。 在我看来,@ YonahW所提到的逃避赢得'向下',但是两个单引号不再是两个双打的输入,并且在没有额外击键的情况下VBA中的差异是相当明显的,而在电子表格中可能并不明显。