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

“火箭”莫里斯·理查德

如果我使用的是单引号,那就太琐碎了:="Maurice 'The Rocket' Richard"但是双引号呢?


当前回答

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

其他回答

返回一个空的或零长度的字符串(例如:"")使单元格显示为空白是工作表公式中的常见做法,但在通过Range插入公式时重新创建该选项。公式或范围。VBA中的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(,)取代旧的传递空字符串的""方法,您可能不再使用算盘来确定公式字符串中是否有正确的引号字符数量。

如果你需要使用JSON:

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

你试过用额外的双引号转义吗?通过转义字符,您是在告诉Excel将“字符视为文字文本”。

= "Maurice ""The Rocket"" Richard"

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

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

VBA函数

1) .formula = “=”“THEFORMULAFUNCTION ”“&(CHAR(34) & ”STUFF“” & CHAR(34))”

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

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

 THEFORMULAFUNCTION "STUFF"

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

 THEFORMULAFUNCTION "STUFF"

Excel结果/公式

1) =" theformulfunction "&(char (34) & " stuff "& char (34))

2)公式功能“东西”