【发布时间】:2017-09-23 21:11:47
【问题描述】:
我需要通过 VBA 在 Excel 工作表中编写公式,所以我通过选择范围并应用公式,但我的公式太长并且包含很多双引号 ("),因此忽略双引号 (")我添加了两个双引号 (")
有时字符串会按照我的意愿写入,或者有时通过不匹配的双引号 (") 字符串被更改并且应用的公式不正确。
在python中,我们在字符串之前写r,它的工作方式如下:
print(r'hello\'s Sam.')
hello\'s Sam
但是 Excel VBA 中有什么方法可以编写这样的原始字符串吗?
公式如下
=IF(NOT($E24=""),IF($Q24="0-10V(AI)","Direct (0-10V) = (0-100%)",IF($Q24="2-10V(AI)","Direct (2-10V) = (0-100%)",IF(OR($Q24="PT 1000",$Q24="NTC 20K"),"-50 to 150 Deg C","N/A"))),"")
我通过 VBA 应用它如下
Sheet4.Range("R2:R50000").Formula = "=IF(NOT($E2=""" + """),IF($Q2=""" + "0-10V(AI)""" + ",""" + "Direct (0-10V) = (0-100%)""" + ",IF($Q2=""" + "2-10V(AI)""" + ",""" + "Direct (2-10V) = (0-100%)""" + ",IF(OR($Q2=""" + "PT 1000""" + ",$Q2=""" + "NTC 20K""" + "),""" + "-50 to 150 Deg C""" + ",""" + "N/A""" + "))),""" + """)"
【问题讨论】:
-
要写 - 不是“赖特” ....
-
@John Coleman 我将此公式应用于 R(R2:R50000) 列中的 sheet4 公式是 =IF(NOT($E24=""),IF($Q24="0-10V (AI)","直接 (0-10V) = (0-100%)",IF($Q24="2-10V(AI)","直接 (2-10V) = (0-100%)" ,IF(OR($Q24="PT 1000",$Q24="NTC 20K"),"-50 到 150 摄氏度","N/A"))),"")
-
@John Coleman 和我用 Excel VBA Sheet4.Range("R2:R50000").Formula = "=IF(NOT($E2=""" + """),IF( $Q2=""" + "0-10V(AI)""" + ",""" + "直接 (0-10V) = (0-100%)""" + ",IF($Q2=" "" + "2-10V(AI)""" + ",""" + "直接 (2-10V) = (0-100%)""" + ",IF(OR($Q2=""" + "PT 1000""" + ",$Q2=""" + "NTC 20K""" + "),""" + "-50 到 150 摄氏度""" + ",""" + "N /A""" + "))),""" + """)"
-
有什么问题?该代码似乎成功地将公式放入带有引号的单元格中您想要它们的位置。插入的公式与您要插入的公式有何不同?请阅读minimal reproducible example。
-
@John Coleman 感谢您的回复,我的 formla 在 VBA 中是成功的,但是我想在我的整个代码 70-80 类型中输入这样的公式,因此很难处理双引号这就是我在 excel VBA 中寻找原始字符串函数的原因。