今聊下有关单元格批注的其它常用代码,也就是如何批量提取/删除/新增单元格批注等~ 1,批量提取单元格批注内容。 以下自定义函数可以提取指定单元格的批注内容。但需要说明的是,由于函数的易失性都是根据单元格的值属性而重算的,当批注发生改变时,值并未改变,因此即便加上Application.Volatile,该函数也不会自动重算——也就是说,当批注内容发生改变后,需要重新运算该函数才可以得到新的批注内容哦。 Function GetComment(Rng As Range) Dim t As String If Rng.Comment Is Nothing Then'判断rng是否包含批注 t = '' Else t = Rng.Comment.Text End If GetComment = t End Function 2,批量删除批注 2.1,以下代码是将所选择单元格范围内的批注一股脑全部删除:
2.2,以下代码是有条件的删除指定单元格范围的批注,例如删除批注内容中包含“看见星光”的。 Sub DelComment() Dim rng As Range, rngEach As Range Set rng = Application.InputBox('请选择删除批注的单元格范围。', Type:=8) Set rng = Intersect(rng.Parent.UsedRange, rng) 'Intersect避免选择整列时,造成无谓循环以致代码效率低下。 If rng Is Nothing Then Exit Sub For Each rngEach In rng If Not rngEach.Comment Is Nothing Then '如果单元格有批注…… If rngEach.Comment.Text Like '*看见星光*' Then rngEach.ClearComments '如果批注内容包含看见星光……则清除 End If Next End Sub 3,批量新增批注 比如将所选择的单元格区域的内容批量新增为批注。
题外话: ……拥抱……致安………… |
|
来自: hercules028 > 《VBA》