通过设置 Worksheet 对象的 ScrollArea 属性,能够限制工作表滚动区域。ScrollArea 属性使用 A1 样式的单元格引用形式(字符串类型)返回或设置工作表允许滚动的区域。设置工作表滚动区域之后,用户不能选定允许滚动区域之外的单元格,同时工作表的一些相应功能可能被禁止(如工作表全选、选中整行或整列等),但仍然可以选定区域之外的其他对象(如图形、按钮等)。
手动设置工作表滚动区域
在 VBE 的【工程资源管理器】窗口中选择要设置的工作表,然后在【属性】窗口中设置 ScrollArea 属性。
以下示例将 Sheet1 的滚动区域设置为 $A$1:$G$20
:
重要
ScrollArea 属性设置无法保存,每次打开工作薄时,均需要重新设置。
使用 VBA 自动设置工作表滚动区域
为保证每次打开工作簿时自动设置工作表滚动区域,通常在 Workbook_Open 事件中对该属性进行设置。
如下示例代码将工作簿打开时的第一张工作表的滚动区域设置为 A1:G20
固定单元格区域:
'------------------ ThisWorkbook ------------------
Private Sub Workbook_Open()
Worksheets(1).ScrollArea = "A1:G20"
End Sub
使用代码可以动态地设置工作表允许滚动区域,如下示例代码激活工作表 Sheet2,并将工作表允许滚动区域设置为活动窗口的可视区域:
Sub SetScrollArea()
With Sheet2
.Activate
.ScrollArea = ActiveWindow.VisibleRange.Address
End With
End Sub
其中 Window 对象的 VisibleRange 属性返回 Range 对象,代表当前窗口的可视区域。窗口的可视区域是指用户可以在窗口或窗格中看到的所有单元格区域,如果一行或一列有部分区域可见,该行或列就包括在可视区域中。
取消工作表滚动区域限制
当 ScrollArea 属性值为空时,将取消已有工作表允许滚动区域的设置,示例代码如下:
Sub DisbleScrollAreaSetup()
Worksheets(1).ScrollArea = ""
End Sub