我该如何在Excel公式中构建以下字符串:
Maurice "The Rocket" Richard
如果我使用单引号,那很容易:="Maurice 'The Rocket' Richard"
,但如果使用双引号呢?
我该如何在Excel公式中构建以下字符串:
Maurice "The Rocket" Richard
如果我使用单引号,那很容易:="Maurice 'The Rocket' Richard"
,但如果使用双引号呢?
你尝试过使用额外的双引号进行转义吗?通过转义字符,你告诉Excel将 " 字符视为普通文本。
= "Maurice ""The Rocket"" Richard"
或者,您可以使用CHAR
函数:
= "Maurice " & CHAR(34) & "Rocket" & CHAR(34) & " Richard"
三个双引号:""" x """
= "x"
Excel会自动更改为一个双引号,例如:
=CONCATENATE("""x"""," hi")
= "x" hi
=CONCATENATE("<""x"">"," hi")
-> <"x"> hi
- mwfearnley如果您需要使用JSON进行此操作:
=CONCATENATE("'{""service"": { ""field"": "&A2&"}}'")
Function Quote(inputText As String) As String
Quote = Chr(34) & inputText & Chr(34)
End Function
使用 chr(34)。
Joe = "Hi there, " & Chr(34) & "Joe" & Chr(34)
ActiveCell.Value = Joe
结果:
Hi there, "joe"
将"
作为单独的单元格连接起来:
A | B | C | D
1 " | text | " | =CONCATENATE(A1; B1; C1);
D1 displays "text"
""
)使单元格呈现为空白是工作表公式中的常见做法,但在VBA中通过Range.Formula或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(,)
代替""
可以简化甚至是像上面那样简单的公式。当在更复杂的公式中使用时,其好处变得越来越显著,例如将空字符串附加到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(,)
替代旧的""
方法来传递空字符串,这样您就可以停止使用算盘来确定公式字符串中是否有足够数量的引号字符了。="Maurice "&"""TheRocker"""&" Richard"
这个能用于使用.Formula = "=THEFORMULAFUNCTION("STUFF")"
的宏吗?
那么它应该是这样的:
这个能用于使用.Formula = "=THEFORMULAFUNCTION(CHAR(34) & STUFF & CHAR(34))"
的宏吗?
""
更加稳定。也许只是因为我使用的是 Mac Excel 2011 版本。 - Ivan -Oats- Storck&
连接一个双引号并放在紧挨着或者紧接着与“&”之后都不能用双双引号的方法实现。 - Amos M. Carpenter