我正在尝试应用一个在单元格中写入YES或NO的公式,检查另一个单元格是否以Q)文本开头。
在Excel中手动编写它正在运行。
=IF(LEFT(A2;2)="Q)";"YES";"NO")
但是当我尝试在宏
中自动执行此操作时Range("R2").Formula = "=IF(LEFT(A2;2)=""Q)"";""YES"";""NO"")"
运行时错误' 1004':应用程序定义或对象定义的错误
另外,我想为整个专栏做这样的事情,比如这个
Range("R2:R" & lastRow).Formula = "=IF(LEFT(A2;2)=""Q)"";""YES"";""NO"")"
但为此,我必须先解决第一个问题。
我做错了什么?
答案 0 :(得分:2)
VBA使用逗号分隔符,无论您的本地设置如何
Range("R2:R" & lastRow).Formula = "=IF(LEFT(A2,2)=""Q)"",""YES"",""NO"")"
答案 1 :(得分:1)
您可以随时尝试录制宏选项: 1.开始录音 2.将公式粘贴到单元格中 3.停止录音 4.查看录制的宏以及它如何格式化公式
答案 2 :(得分:1)
一般情况下,请尝试以下方法:
在Excel中制作可行的公式
然后选择具有可行公式的单元格
运行代码
在即时窗口中,应打印一些有用的内容。
代码:
Public Sub PrintMeUsefulFormula()
Dim strFormula As String
Dim strParenth As String
strParenth = """"
strFormula = Selection.Formula
strFormula = Replace(strFormula, """", """""")
strFormula = strParenth & strFormula & strParenth
Debug.Print strFormula
End Sub
答案 3 :(得分:1)
Range.Formula
期待EN-US语法。
使用Range.FormulaLocal
根据您的区域设置插入公式:
Range("R2").FormulaLocal = "=IF(LEFT(A2;2)=""Q)"";""YES"";""NO"")"
答案 4 :(得分:0)
而不是双重双引号。尝试用。跳过双引号。
例如:而不是"" Q""尝试\" Q \"