340

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

莫里斯“火箭”理查德

如果我使用单引号,这很简单 ="Maurice 'The Rocket' Richard"但是双引号呢?

4

12 回答 12

503

您是否尝试过使用额外的双引号进行转义?通过转义字符,您是在告诉 Excel 将 " 字符视为文字文本。

= "Maurice ""The Rocket"" Richard"
于 2008-10-19T16:33:40.843 回答
171

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

= "Maurice " & CHAR(34) & "Rocket" & CHAR(34) & " Richard"
于 2008-10-20T13:41:42.500 回答
23

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

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

=“x”嗨

于 2012-10-04T23:41:37.430 回答
7

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

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

这是来自 Sue Mosher 的书“Microsoft Outlook 编程”。那么你的公式将是:

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

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

于 2012-06-21T12:29:00.193 回答
7

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

=CONCATENATE("'{""service"": { ""field"": "&A2&"}}'")
于 2014-08-13T16:46:39.713 回答
4

使用 chr(34) 代码:

    Joe = "Hi there, " & Chr(34) & "Joe" & Chr(34)
    ActiveCell.Value = Joe

结果:

    Hi there, "joe"
于 2015-07-31T13:32:36.970 回答
2

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

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

D1 displays "text"
于 2017-05-18T09:26:45.793 回答
1

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

于 2010-08-17T14:22:16.877 回答
1

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

工作表的本机TEXT 函数可以在不使用引号的情况下产生相同的结果。

'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以避免在查找结果为空白时将零返回到单元格或在不匹配时返回空字符串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(,)替换传递空字符串的旧""方法,您可能会停止使用算盘来确定公式字符串中的引号字符数量是否正确。

于 2016-03-23T04:41:30.177 回答
1
="Maurice "&"""TheRocker"""&" Richard"
于 2016-04-07T12:28:49.613 回答
0

VBA 函数

1) .Formula = "=""THEFORMULAFUNCTION ""&(CHAR(34) & ""STUFF"" & CHAR(34))"

2) .Formula = "THEFORMULAFUNCTION ""STUFF"""

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

 THEFORMULAFUNCTION "STUFF"

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

 THEFORMULAFUNCTION "STUFF"

Excel 结果/公式

1) ="THEFORMULAFUNCTION "&(CHAR(34) & "STUFF" & CHAR(34))

2) 公式函数“东西”

于 2013-02-13T17:58:08.693 回答
-1

还有另一种方法,虽然更多的是“我如何在 Excel 公式中构造以下字符串:”莫里斯“火箭”理查德“”而不是“如何在 Excel 公式中创建包含双引号的字符串?”,这只是使用两个单引号:

SO216616 示例

左侧是从 Excel 工作表中截取的 Calibri,右侧是从 VBA 窗口中截取的片段。在我看来,@YonahW 提到的转义赢得了“放下手”,但两个单引号的输入不超过两个双引号,并且在没有额外击键的情况下,VBA 中的差异相当明显,而在电子表格中可能不明显。

于 2016-07-17T00:36:00.530 回答