问:VBA如何实现将批注中有同样字符的单元格相加的功能?例如:把批注中带有"支出"字眼的数个分布在各处的单元格相加?
答:用VBA自编一个自定义函数,第一个参数是相同的字眼,第二个参数是要统计的范围。添加自定义函数的方法是按Alt+F11打开VBA编辑器,插入一个模块,把下面的代码贴进去。用法:在Excel表里统计范围外的任意单元格里插入公式“=统计批注("支出",A1:C5)”,“支出”就是你所谓的相同字眼,A1:C5就是统计的单元格范围。
在同一工作表中可以用如下代码:
- Function 统计批注(参数 As String, 范围 As Range) As Double
- For Each 单元格 In 范围.Cells
- If Not (单元格.Comment Is Nothing) Then
- If InStr(1, 单元格.Comment.Text, 参数) <> 0 Then
- 统计批注 = 统计批注 + 单元格
- End If
- End If
- Next
- End Function
在整个工作簿中用下面的代码:
- Function 统计所有单元格批注(参数 As String) As Double
- Dim 工作表 As Worksheet, 批注 As Comment
- For Each 工作表 In ActiveWorkbook.Worksheets
- For Each 批注 In 工作表.Comments
- If InStr(1, 批注.Text, 参数) <> 0 Then 统计所有单元格批注 = 统计所有单元格批注 + 批注.Parent.Value
- Next
- Next
- End Function
(责任编辑:admin) |