如何在Excel公式中创build包含双引号的string?
如何在Excel公式中构造以下string:
莫里斯“火箭”理查德
如果我使用单引号,这是微不足道的= "Maurice 'The Rocket' Richard"
但双引号呢?
你是否试过用双引号转义?
= "Maurice ""The Rocket"" Richard"
或者,您可以使用CHAR
function:
= "Maurice " & CHAR(34) & "Rocket" & CHAR(34) & " Richard"
三个双引号: " " " x " " "
= "x"
Excel会自动换成一个双引号。 例如:
=CONCATENATE("""x"""," hi")
=“x”嗨
我使用这个function(如果工作簿已经有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发布的类似。
如果您需要使用JSON来执行此操作,请执行以下操作:
=CONCATENATE("'{""service"": { ""field"": "&A2&"}}'")
这将工作的macros使用.Formula = "=THEFORMULAFUNCTION("STUFF")"
所以它会像这样工作的macros使用.Formula = "=THEFORMULAFUNCTION(CHAR(34) & STUFF & CHAR(34))"
使用chr(34)代码:Joe =“嗨,”&Chr(34)&“Joe”&Chr(34)ActiveCell.Value = Joe
结果:你好,“乔”
返回一个空的或零长度的string(例如""
)使单元格显示为空白是工作表公式中的常见做法,但是在通过Range.Formula或Range.FormulaR1C1属性插入公式时重新创build该选项是不方便的必须将引号string中的双引号字符加倍。
工作表的本地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(,)
来代替""
甚至可以清理上面这个简单的公式。 当在更复杂的公式中使用这些优点变得越来越重要时,例如将空string附加到VLOOKUP以避免在查找结果为空时返回零,或者在与IFERROR不匹配时返回空string。
'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(,)
replace传递空string的旧方法,可能会停止使用算盘来确定公式string中是否包含正确数量的引号字符。
VBAfunction
1).Formula =“=”“THEFORMULAFUNCTION”“&(CHAR(34)&”“STUFF”“&CHAR(34))”
2).Formula =“THEFORMULAFUNCTION”“东西”“”
第一种方法使用vba在单元格中写入一个公式,结果为计算值:
THEFORMULAFUNCTION "STUFF"
第二种方法使用vba在单元格中写入一个string,其结果是:
THEFORMULAFUNCTION "STUFF"
Excel结果/公式
1)=“THEFORMULAFUNCTION”&(CHAR(34)&“STUFF”&CHAR(34))
2)TheFORMULFUNCTION“东西”
="Maurice "&"""TheRocker"""&" Richard"
还有另一种方法,虽然更多的是“如何在Excel公式中构build以下string:”Maurice“The Rocket”Richard“”而不是“如何在Excel公式中创build包含双引号的string?”,这只是简单地使用两个单引号:
在左侧是Calibri从Excel工作表中剪切,右侧是从VBA窗口中剪切。 在我看来,@YonahW提到的转义赢得了'双手',但是两个单引号不会比两个双打更多,而且在VBA中没有额外的击键,而在电子表格中可能不会显而易见。
连接"
作为一个单元格:
A | B | C | D 1 " | text | " | =CONCATENATE(A1; B1; C1); D1 displays "text"