【问题标题】:How to set a formula using VBA in an Excel cell?如何在 Excel 单元格中使用 VBA 设置公式?
【发布时间】:2019-07-20 00:45:52
【问题描述】:

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

我想将公式写入单元格。

【问题讨论】:

  • ''更改为""""
  • Tnx。就是这样!
  • 仅供参考,您可以在此处使用Formula 代替FormulaLocal,因为您使用的是“默认”逗号分隔符。如果您想使用其他分隔符,例如“;”,您可以使用 FormulaLocal
  • 我想把它翻译成:

标签: vba formula


【解决方案1】:

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

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

单引号和双引号都有特定的用途,不可互换。问题是,你在一个已经用 " 双引号分隔的 VBA 字符串文字中,所以它需要 转义;在 VBA 中执行此操作的方法是将其加倍 "",如下所示:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-15
    • 1970-01-01
    • 1970-01-01
    • 2017-04-18
    • 1970-01-01
    相关资源
    最近更新 更多