如何在Excel公式中构造以下字符串:
莫里斯“火箭队”理查德
如果我'm using single quotes, it' s trivial = "Maurice 'The Rocket' Richard" 但是双引号怎么样?
"Maurice 'The Rocket' Richard"
还有另一种方法,但更多的是“如何在Excel公式中构造以下字符串:”Maurice“The Rocket”Richard“”比“如何在Excel公式中创建包含双引号的字符串?”,这只是简单地使用两个单引号:
左边是Calibri从Excel工作表中剪切的,右边是来自VBA窗口的剪辑 . 在我看来,@ YonahW所提到的逃避赢得'向下',但是两个单引号不再是两个双打的输入,并且在没有额外击键的情况下VBA中的差异是相当明显的,而在电子表格中可能并不明显 .
使用chr(34)代码:Joe =“Hi there,”&Chr(34)&“Joe”&Chr(34)ActiveCell.Value = Joe
结果:你好,“乔”
你试过用双引号逃脱吗?
= "Maurice ""The Rocket"" Richard"
返回一个空的或零长度的字符串(例如 "" )以使单元格显示为空白是工作表公式中的常见做法,但是当通过VBA中的Range.Formula或Range.FormulaR1C1属性插入公式时重新创建该选项是不实用的,因为必须具有在引用的字符串中加倍双引号字符 .
""
工作表的原生TEXT function可以在不使用引号的情况下生成相同的结果 .
'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不匹配的空字符串时将零返回到单元格 .
TEXT(,)
'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"
将 " 连接为单独的单元格:
"
A | B | C | D 1 " | text | " | =CONCATENATE(A1; B1; C1); D1 displays "text"
我为此使用了一个函数(如果工作簿已经有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发布的内容 .
或者,您可以使用 CHAR 函数:
CHAR
= "Maurice " & CHAR(34) & "Rocket" & CHAR(34) & " Richard"
三个双引号: " " " x " " " = "x" Excel将自动更改为一个双引号 . 例如 . :
" " " x " " "
"x"
=CONCATENATE("""x"""," hi")
=“x”嗨
VBA Function
1).Formula =“=”“THEFORMULAFUNCTION”“&(CHAR(34)&”“STUFF”“&CHAR(34))”
2).Formula =“THEFORMULAFUNCTION”“STUFF”“”
第一种方法使用vba在单元格中编写公式,得到计算值:
THEFORMULAFUNCTION "STUFF"
第二种方法使用vba在单元格中写入一个字符串,该字符串产生以下值:
Excel Result/Formula
1)=“THEFORMULAFUNCTION”&(CHAR(34)&“STUFF”&CHAR(34))
2)THEFORMULAFUNCTION“STUFF”
如果您需要使用JSON执行此操作:
=CONCATENATE("'{""service"": { ""field"": "&A2&"}}'")
这将适用于使用 .Formula = "=THEFORMULAFUNCTION("STUFF")" 的宏,所以它会像:这将适用于使用 .Formula = "=THEFORMULAFUNCTION(CHAR(34) & STUFF & CHAR(34))" 的宏
.Formula = "=THEFORMULAFUNCTION("STUFF")"
.Formula = "=THEFORMULAFUNCTION(CHAR(34) & STUFF & CHAR(34))"
12 回答
还有另一种方法,但更多的是“如何在Excel公式中构造以下字符串:”Maurice“The Rocket”Richard“”比“如何在Excel公式中创建包含双引号的字符串?”,这只是简单地使用两个单引号:
左边是Calibri从Excel工作表中剪切的,右边是来自VBA窗口的剪辑 . 在我看来,@ YonahW所提到的逃避赢得'向下',但是两个单引号不再是两个双打的输入,并且在没有额外击键的情况下VBA中的差异是相当明显的,而在电子表格中可能并不明显 .
使用chr(34)代码:Joe =“Hi there,”&Chr(34)&“Joe”&Chr(34)ActiveCell.Value = Joe
结果:你好,“乔”
你试过用双引号逃脱吗?
返回一个空的或零长度的字符串(例如
""
)以使单元格显示为空白是工作表公式中的常见做法,但是当通过VBA中的Range.Formula或Range.FormulaR1C1属性插入公式时重新创建该选项是不实用的,因为必须具有在引用的字符串中加倍双引号字符 .工作表的原生TEXT function可以在不使用引号的情况下生成相同的结果 .
在我看来,使用
TEXT(,)
代替""
可以清除一个像上面那样简单的公式 . 当在更复杂的公式中使用时,益处变得越来越重要,例如将空字符串附加到VLOOKUP的做法,以避免在查找导致空白或返回与IFERROR不匹配的空字符串时将零返回到单元格 .使用
TEXT(,)
替换传递空字符串的旧""
方法,您可能会停止使用算盘来确定公式字符串中是否包含正确数量的引号字符 .将
"
连接为单独的单元格:我为此使用了一个函数(如果工作簿已经有VBA) .
这是来自Sue Mosher的书“Microsoft Outlook Programming” . 然后你的公式将是:
="Maurice "&Quote("Rocket")&" Richard"
这类似于Dave DuPlantis发布的内容 .
或者,您可以使用
CHAR
函数:三个双引号:
" " " x " " "
="x"
Excel将自动更改为一个双引号 . 例如 . :=“x”嗨
VBA Function
1).Formula =“=”“THEFORMULAFUNCTION”“&(CHAR(34)&”“STUFF”“&CHAR(34))”
2).Formula =“THEFORMULAFUNCTION”“STUFF”“”
第一种方法使用vba在单元格中编写公式,得到计算值:
第二种方法使用vba在单元格中写入一个字符串,该字符串产生以下值:
Excel Result/Formula
1)=“THEFORMULAFUNCTION”&(CHAR(34)&“STUFF”&CHAR(34))
2)THEFORMULAFUNCTION“STUFF”
如果您需要使用JSON执行此操作:
这将适用于使用
.Formula = "=THEFORMULAFUNCTION("STUFF")"
的宏,所以它会像:这将适用于使用.Formula = "=THEFORMULAFUNCTION(CHAR(34) & STUFF & CHAR(34))"
的宏