如何在Excel单元格中使用VBA设置公式?

时间:2019-07-19 16:14:10

标签: vba formula

我想使用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

我想将公式写到单元格中。

1 个答案:

答案 0 :(得分:0)

不要Activate工作表或Select范围。

如果工作表“ Sheet1”在编译时位于ThisWorkbook中,则它具有一个代号名称标识符,您可以在代码中使用该代号名称来引用该特定工作表对象-默认值为Sheet1 ,但是您可以通过修改(Name)属性的值在属性工具窗口(F4)中进行更改。

单引号和双引号分别用于特定目的,并且不可互换。问题是,您位于已经用"双引号分隔的VBA字符串文字中,因此需要转义;在VBA中执行此操作的方法是将""加倍,如下所示:

Sheet1.Range("B4").Formula = "=IF(D5,B5,"""")"