vba - 如何在 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
我想将公式写入单元格。
解决方案
不要工作Activate
表,或Select
范围。
如果工作表“Sheet1”ThisWorkbook
在编译时存在,那么它有一个代码名称标识符,您可以在代码中使用它来引用该特定工作表对象 - 默认为Sheet1
,但您可以在“属性”工具窗口 (F4)中更改它通过修改(Name)
属性的值。
单引号和双引号都有特定的用途,并且不可互换。问题是,您位于已用"
双引号分隔的 VBA 字符串文字中,因此需要对其进行转义;在 VBA 中执行此操作的方法是将其加倍""
,如下所示:
Sheet1.Range("B4").Formula = "=IF(D5,B5,"""")"
推荐阅读
- azure-devops - 工作项的 Azure Devops 规则
- azure-devops - 通过为天蓝色管道中的步骤目标设置“命令:受限”来阻止哪些命令?
- css - 样式材质 UI 自动完成的选项背景颜色
- javascript - 我需要一个正则表达式来检查数组的当前索引是否存在于特定的数字范围内
- c++ - 如果 c++ 允许直接从 int 转换为 char,为什么控制台中什么都没有?
- python - 如何在 cv2 和 numpy 形状符号之间进行管理?
- javascript -
- 如果长度为,则要转到下一行的项目
- 超过屏幕宽度
- 如果长度为,则要转到下一行的项目
- npm - 什么时候运行命令>npm install 这会生成错误我该如何解决这个问题
- c# - 如何使 Unity 3D 输入字段支持的 Windows 10 触摸键盘滑动和预测?
- c# - 直接播放场景时,场景保存和加载工作正常,但是当我从主菜单加载时,它是空异常