gpt4 book ai didi

vba - 如何在Excel VBA中写入原始字符串?

转载 作者:行者123 更新时间:2023-12-02 19:16:46 24 4
gpt4 key购买 nike

我需要通过 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""" + "))),""" + """)"

最佳答案

VBA 中没有原始字符串的概念,但您可以使用例如编写公式:单引号而不是双引号,然后替换它们。您甚至可以创建一个简单的实用函数来执行此操作:

Function r(s As String, Optional QuoteSymbol As String = "'") As String
r = Replace(s, QuoteSymbol, """")
End Function

然后您的公式可以简单地插入为:

Sheet4.Range("R2:R50000").Formula = r("=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'))),'')")

万一您需要在最终公式中使用单引号,那么您可以将反引号 ( ` ) 之类的内容传递给可选参数 QuoteSymbol

话虽如此,您似乎做了比需要的更多的工作,因为在字符串内任何两个连续的双引号都被一个双引号替换。您不需要所有这些连接来构建最终的字符串。

关于vba - 如何在Excel VBA中写入原始字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46128081/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com