- 本技巧的目的:
- 代码助手
- 1. 在单元格中写入公式
- 2. 检查单元格是否含有公式
- 3. 判断单元格公式是否存在错误
- 4. 使用工作表函数计算
- EXCEL880.COM 官网下载">VBA代码助手 懒人神器 在 EXCEL880.COM 官网下载
- 更多作品请百度搜索 郑广学
-
本技巧的目的:
- 如何使用VBA 在单元格区域写入公式
- 如何使用VBA 检查单元格区域是否有公式
- 如何使用VBA 判断单元格的公式是否存在错误
- 如何使用VBA 使用工作表函数计算
- 下图是测试单元格是否有公式 :
- 如果有混合的区域,可以检测出含有公式的区域:
-
代码助手
- 在代码窗口输入中文: 公式+空格,可以快速输入代码
- 在代码库中可以随时收录需要的代码
-
1. 在单元格中写入公式
- 运行代码前:
- 运行代码后:
- 注释:
- 写入的公式可以是绝对引用,也可以是非绝对引用。
- 绝对引用:
- s = r.Address ‘地址后面不带参数
- Range(“c2”).Formula = “=sum($A$1:” & s & “)”
- ★★★注意:公式中的双引号,= 等字符 不能遗漏。 = “=sum($A$1:” & s & “)”
- 还可以使用FormulaR1C1属性返回或设置以R1C1-样式符号表示的公式,如下面的代码所示。
- Sub rngFormulaRC()
- Sheet2.Range(“C1:C10”).FormulaR1C1 = “=SUM(RC[-2]+RC[-1])”
- End Sub
- 如果需要在单元格中写入数组公式则使用Range对象的FormulaArray属性。如下面的代码所示。
- Sub RngFormulaArray()
- Sheet3.Range(“C1”).FormulaArray = “=A1:A2*B1:B2”
- End Sub
Range对象的FormulaArray属性返回或设置单元格区域的数组公式。
2. 检查单元格是否含有公式
代码如下:
- 注释:
- HasFormula 属性:
- 区域中 所有单元格 均包含公式, 值为 True
- 区域中 所有单元格 均不包含公式,值为 False
- 其他情况下:单元格中既有包含公式 也有不包含公式的,值为: Null
- 其他情况代码:
- MsgBox “公式区域:” & Selection.SpecialCells(xlCellTypeFormulas).Address(0, 0)
- ‘提示对话框: 包含公式的单元格的非绝对引用地址
- 使用 SpecialCells 方法,返回一个与指定类型及值相匹配的所有单元格
返回是 Range 对象, 加上 address(0,0),显示 非绝对引用的地址
3. 判断单元格公式是否存在错误
代码:
- 运行结果:
- 检查没有错误公式的单元格:
- 只需要更换地址:Set rng = Sheet1.Range(“D7”)
- 运行结果:
- 注释:
通过 IsError 来检查是否包含单元格错误值,返回不同的结果
4. 使用工作表函数计算
代码:
- 注释:
- Application.WorksheetFunction.Sum 调用工作表函数进行运算
- Sheet1.Range(“D2:” & 列 & “9”) 字符连接的方式:用“”和 & 进行连接
VBA代码助手 懒人神器 在 EXCEL880.COM 官网下载
更多作品请百度搜索 郑广学