我想使用VBA编写公式= IF(D7,B7,“”)
使用“ = IF(D7,B7,”“)”或'= IF(D7,B7,“”)'或“ = IF(D7,B7,”)“”不起作用。我已经读过,使用双引号可以,但是它似乎对我不起作用。
Sub SetFormula()
ThisWorkbook.Sheets("sheet1").Activate
Sheets("sheet1").Range("B4").Select
Range("B4").FormulaLocal = "=IF(D5,B5,'')" 'Errors out
End Sub
我想将公式写到单元格中。
答案 0 :(得分:0)
不要Activate
工作表或Select
范围。
如果工作表“ Sheet1”在编译时位于ThisWorkbook
中,则它具有一个代号名称标识符,您可以在代码中使用该代号名称来引用该特定工作表对象-默认值为Sheet1
,但是您可以通过修改(Name)
属性的值在属性工具窗口(F4)中进行更改。
单引号和双引号分别用于特定目的,并且不可互换。问题是,您位于已经用"
双引号分隔的VBA字符串文字中,因此需要转义;在VBA中执行此操作的方法是将""
加倍,如下所示:
Sheet1.Range("B4").Formula = "=IF(D5,B5,"""")"