首页 > 解决方案 > 如何在 Excel 单元格中使用 VBA 设置公式?

问题描述

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

我想将公式写入单元格。

标签: vbaformula

解决方案


不要工作Activate表,或Select范围。

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

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

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

推荐阅读