如何在Excel公式中构造以下字符串:
莫里斯·“火箭”理查德
如果我使用单引号,那是微不足道的=,"Maurice 'The Rocket' Richard"
但是双引号呢?
如何在Excel公式中构造以下字符串:
莫里斯·“火箭”理查德
如果我使用单引号,那是微不足道的=,"Maurice 'The Rocket' Richard"
但是双引号呢?
Answers:
另外,您可以使用以下CHAR
功能:
= "Maurice " & CHAR(34) & "Rocket" & CHAR(34) & " Richard"
&
字号之前或之后使用带双引号的连接不能使用双双引号方法。
三个双引号:" " " x " " "
= "x"
Excel将自动更改为一个双引号。例如:
=CONCATENATE("""x"""," hi")
=“ x”嗨
为此,我使用了一个功能(如果工作簿已经具有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发布的内容。
如果您需要使用JSON进行此操作:
=CONCATENATE("'{""service"": { ""field"": "&A2&"}}'")
它将适用于使用的宏,.Formula = "=THEFORMULAFUNCTION("STUFF")"
就像这样:它将适用于使用的宏.Formula = "=THEFORMULAFUNCTION(CHAR(34) & STUFF & CHAR(34))"
返回空的或零长度的字符串(例如""
)以使单元格显示为空白是工作表公式中的常见做法,但是通过VBA中的Range.Formula或Range.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(,)
替换""
传递空字符串的旧方法,您可能会停止使用算盘来确定公式字符串中的引号字符数是否正确。
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)形式功能“填充”
="Maurice "&"""TheRocker"""&" Richard"
""
可能更一致地工作,也许仅仅是因为我有Mac Excel 2011