请问excel和VBA怎么达成把批注中有同样字眼的单元格相加的功能?

来源:百度知道 编辑:UC知道 时间:2024/05/03 21:42:58
请问excel和VBA怎么达成把批注中有同样字眼的单元格相加的功能?

我想操作批注中有特定字眼的单元格 比如 把批注中带有"支出"字眼的数个分布在各处的单元格相加
不知是否要用到VBA 具体怎么达成?如能完满解决继续追加分数!
已经在同一工作表中实现了 谢谢 不过 我的同名批注会分散在同一文件的各个工作表中的话似乎就无法统计了 怎么办呢?
(顺便问下怎么使之不用双击函数所在的格并回车就可以更新呢? 有没有什么语句能使它定时更新呢?不过这问题不太重要不解决也OK) 如可解决异表同批注关键字的问题就实在感激不尽啦! 拜托你了!

用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