设置批注的属性---位置、边框、高度、颜色等 

设置批注的属性---位置、边框、高度、颜色等 

[复制链接]
  

nbchn

TA的精华主题

TA的得分主题

 

这个测试了半天,可能只能用VBA才能解决,执行如下宏,即可批量将表中的全部批注填充色设置为透明的,
Sub test()
Dim Com As Range
For Each Com In Sheet1.UsedRange.SpecialCells(xlCellTypeComments)
Com.Comment.Visible = True
Com.Comment.Shape.Select True
Selection.ShapeRange.Fill.Visible = msoFalse
Com.Comment.Visible = False
Next
End Sub

 

 

近期工作中经常使用到批注,可是批注的位置却不是很理想,如果批注很多要改动就很麻烦,就想用VBA实现批注位置自动放到指定位置,在论坛中找了几天,在其他代码的基础上必了一下,为了方便像我这样的新人使用,特注释了放上来大家公享。本贴所有代码都是在论坛里找的,已忘记出处,敬请谅解。

Private Sub Worksheet_SelectionChange(ByVal Target As Range) ' 鼠标单击事件
    Application.ScreenUpdating = False   '关闭屏幕刷新
    On Error Resume Next                  '忽略错误
    Application.EnableEvents = False '先禁止触发事件
    Application.Calculation = xlCalculationManual    '手动重算

    Dim lngRow As Long, LngColumn   As Long, xx As Range ,  Lk  As Range , lArea As Long  ‘定义类型

    LngColumn = Target.Column      '获取当前单元格的列号
    lngRow = Target.Row                  '获取当前单元格 的行号

        For Each xx In Cells(lngRow, LngColumn) '只修改当前选中单元格的批注属性   'ActiveSheet.Cells.SpecialCells(xlCellTypeComments)   ’修改所有批注属性
                xx.Comment.Visible = False               '   / True '如果希望备注显示,留True,不显示,留False                Lk = xx.ColumnWidth                      '设置Lk等于单元格列宽
               With xx.Comment.Shape
                        .Left = xx.Offset(0, 3).Left        '设置批注左右位置,Offset(0, 3) 中后一个数是正数时显示在右边,负数时显示在左边,3表示批注显示在本单元格右边第3列,
                        .Top = xx.Offset(-1, 0).Top      '设置批注上下位置, Offset(0, 3) 中后一个数是正数时显示在下边,负数时显示在上边,3表示批注显示在本单元格右边第3行,
                        .TextFrame.AutoSize = True      '自动适应内容                             
                        lArea = .Width * .Height           
                        .Width = Lk * 6.1                      ‘定义批注宽度等于单元格列宽
                        .Height= (lArea / .Width * 6.1) * 0.3                               ' ‘定义批注高度
                        .AutoShapeType = msoShapeRoundedRectangle       '圆角边框
                        .Line.ForeColor.SchemeColor = 53                              '边框颜色
                        .Line.Weight = 1                                                         '边框粗细
                        .TextFrame.Characters.Font.ColorIndex = 5               '字体颜色
                 End With
          Next xx


    Application.Calculation = xlCalculationAutomatic    '自动重算
    Application.EnableEvents = True                      '恢复触发事件
    On Error GoTo 0                                      '恢复正常的错误提示
    Application.ScreenUpdating = True                    '开启屏幕刷新                                 
End Sub
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用 JavaScript 和 HTML 来实现对文本的批注功能。以下是一个简单的实现思路: 1. 在 HTML 页面中,使用 `<span>` 标签包裹要批注的文本内容,并为每个 `<span>` 标签添加一个唯一的 ID,例如: ```html <p>这是一段需要批注的文本:<span id="note1">这里需要添加批注</span></p> ``` 2. 在页面中添加一个按钮或者其他触发事件,当用户点击该按钮时,触发 JavaScript 函数。 3. JavaScript 函数中,首先获取用户输入的批注内容,然后使用 DOM 操作将批注内容添加到页面中。可以使用 `<div>` 标签等元素来包裹批注内容,并为该元素添加一个唯一的 ID。然后使用 CSS 样式来设置批注框的样式,例如背景颜色边框等。 4. 最后,将批注框添加到需要批注的文本旁边。可以使用 JavaScript 中的 `offsetTop` 和 `offsetLeft` 属性来获取文本元素的位置,然后将批注框定位到该位置。 以下是一个简单的实现示例: ```html <html> <head> <style> .note-box { background-color: #fff; border: 1px solid #ccc; padding: 5px; position: absolute; top: 0; left: 0; } </style> </head> <body> <p>这是一段需要批注的文本:<span id="note1">这里需要添加批注</span></p> <button onclick="addNote()">添加批注</button> <script> function addNote() { // 获取用户输入的批注内容 var noteText = prompt("请输入批注内容:"); // 创建批注框元素 var noteBox = document.createElement("div"); noteBox.id = "note-box-" + new Date().getTime(); noteBox.className = "note-box"; noteBox.innerText = noteText; // 获取需要批注的文本元素 var noteElem = document.getElementById("note1"); // 将批注框添加到文本元素旁边 noteElem.parentNode.insertBefore(noteBox, noteElem.nextSibling); // 设置批注框的位置 var noteElemRect = noteElem.getBoundingClientRect(); var noteBoxElem = document.getElementById(noteBox.id); noteBoxElem.style.top = noteElemRect.top + noteElem.offsetHeight + "px"; noteBoxElem.style.left = noteElemRect.left + "px"; } </script> </body> </html> ``` 请注意,这只是一个简单的实现示例,实际实现中可能需要考虑更多的因素,例如批注框的样式、位置计算等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值