vba获取批注所在页码
时间: 2023-07-28 16:04:55 浏览: 166
要获取VBA中批注所在的页码,可以使用以下代码:
```vba
Sub GetCommentPageNumber()
Dim cmt As Comment
Set cmt = ActiveSheet.Comments(1) '假设我们要获取第一个批注的页码
Dim rng As Range
Set rng = cmt.Parent '获取批注所在的单元格范围
Dim ws As Worksheet
Set ws = rng.Worksheet '获取批注所在的工作表
Dim cmtTop As Double
cmtTop = rng.Top '获取批注所在单元格的上边距
Dim cmtPage As Long
cmtPage = ws.Evaluate("=CEILING(" & cmtTop & "/ActiveWindow.PointsToScreenPixelsY(1),1)") '计算批注所在的页码
MsgBox "批注所在的页码为:" & cmtPage
End Sub
```
这段代码假设我们要获取活动工作表中第一个批注所在的页码。首先,我们将第一个批注对象赋值给变量`cmt`。然后,我们使用`Parent`属性获取批注所在的单元格范围,并将其赋值给变量`rng`。接下来,我们使用`Worksheet`属性获取批注所在的工作表,并将其赋值给变量`ws`。然后,我们使用`Top`属性获取批注所在单元格的上边距,并将其赋值给变量`cmtTop`。最后,我们使用`Evaluate`方法结合`CEILING`函数和`ActiveWindow.PointsToScreenPixelsY(1)`方法来计算批注所在的页码,并将结果赋值给变量`cmtPage`。最后,我们使用`MsgBox`函数显示批注所在的页码。
阅读全文