打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
如何使用VBA控制Excel批注?

HI,大家好,我是星光。

今天给大家聊一下如何使用VBA编程控制Excel批注,这包含了批量创建批注、提取批注内容、调整批注大小和位置、快速删除批注等。

1,

批量创建批注

以下代码可以将指定单元格区域的值填入批注中。


Sub AddComment() Dim rng As Range, Cll As Range Set rng = Application.InputBox('请选择增加批注的单元格范围。', Type:=8) Set rng = Intersect(rng.Parent.UsedRange, rng) For Each Cll In rng If Cll.Comment Is Nothing Then Cll.AddComment '如果单元格没有批注……则增加批注 Cll.Comment.Text Text:=Cll.Value & '' '输入批注内容 NextEnd Sub

2,

批量提取批注中的内容

以下自定义函数可以将指定单元格区域的批注内容取出:

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 = tEnd Function

3,

批量调整批注的位置

有时候因为某些操作,会将批注的位置拉变形,此时可以使用以下代码调整批注的位置到原单元格处。

Sub t() Dim c As Comment For Each c In ActiveSheet.Comments With c .Shape.Top = .Parent.Top - 8 '右上角位置 .Shape.Left = .Parent.Left + 8 '左下角位置 .Shape.Width = .Parent.Width * 2 '宽度 .Visible = False '不可见 End With NextEnd Sub

4,

批量删除批注

以下代码删除指定范围内的所有批注:

Sub DelComment2()    Dim Rng As Range    Set Rng = Application.InputBox('请选择删除批注的单元格范围。', Type:=8)    Rng.ClearCommentsEnd Sub

以下代码删除指定范围内包含特定关键字的批注,比如包含关键字'看见星光':

Sub DelComment() Dim Rng As Range, Cll As Range, strTemp As String On Error Resume Next Set Rng = Application.InputBox('请选择删除批注的单元格范围。', Type:=8) Set Rng = Intersect(Rng.Parent.UsedRange, Rng) If Rng Is Nothing Then Exit Sub strTemp = '看见星光' For Each Cll In Rng If Not Cll.Comment Is Nothing Then If InStr(strTemp, Cll.Comment.Text) Then Cll.ClearComments End If NextEnd Sub

……

除此之外,还可以将图片批量插入批注中,当鼠标滑过单元格,自动显示图片,相关代码参考教程:当鼠标滑过单元格时,Excel就会自动显示相关图片……

没了,今天给大家分享的内容就这样,打完收工,咱们下期再见。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
整理超全的,给Excel单元格数据批量增加、删除、提取批注!
VBA常用小代码107:如何批量增加/删除/提取单元格批注
Excel VBA 8.30 增加批注和修改批注一样吗?NO!
EXCEL VBA与数据统计
字典法筛选考语文的学生成绩 | VBA实例教程
《神奇的VBA》编程:标识重复数据
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服