VBA专题10-2:使用VBA操控Excel界面之设置工作表

2020-07-02 14:00:29 浏览数 (1)

本文主要讲解操控工作表中一些界面元素的VBA代码。

名称框

名称框中的名字是为单元格区域定义的名字,可以由用户定义名称,或者由Excel自动创建,例如Print_Area和表1。

隐藏名称

示例代码:

代码语言:javascript复制
'隐藏活动工作簿中所有名称
Dim nm As Name
For Each nm In Names
    If nm.Visible = True Then nm.Visible =False
Next nm

但是,不能隐藏由Excel自动创建的表名称

即便隐藏了名称,你仍然能够通过在名称框中输入名称到达该名称的单元格区域。

'隐藏活动工作簿中指定的名称(例如,命名为MyRange1的单元格区域)

代码语言:javascript复制
'设置为True取消隐藏
Names("MyRange1").Visible= False

公式栏

隐藏和取消隐藏公式栏

示例代码:

代码语言:javascript复制
'隐藏和取消隐藏公式栏
Application.DisplayFormulaBar= False '隐藏
Application.DisplayFormulaBar= True  '取消隐藏

注意,隐藏公式栏后,名称框也随之被隐藏。

高度

示例代码:

代码语言:javascript复制
'修改活动窗口中公式栏的高度
Application.FormulaBarHeight= 3 '默认高度是1

滚动条

隐藏和取消隐藏滚动条

示例代码:

代码语言:javascript复制
'隐藏和取消隐藏所有打开的工作簿中的滚动条
Application.DisplayScrollBars= False '隐藏
Application.DisplayScrollBars= True  '取消隐藏
'隐藏和取消隐藏活动窗口中的水平滚动条
With ActiveWindow
    .DisplayHorizontalScrollBar = False '隐藏
    .DisplayHorizontalScrollBar = True  '取消隐藏
End With
'隐藏和取消隐藏活动窗口中的垂直滚动条
With ActiveWindow
    .DisplayVerticalScrollBar = False '隐藏
    .DisplayVerticalScrollBar = True  '取消隐藏
End With

滚动一行或一列

示例代码:

代码语言:javascript复制
'设置距离窗格或窗口顶部的特定行
'设置距离顶部行5行
ActiveWindow.ScrollRow= 5
'设置距离窗格或窗口最左侧的特定列
'设置距离最左侧列8列
ActiveWindow.ScrollColumn= 8

如果活动窗口没有被拆分成窗格,那么行或列的滚动的效果是明显和清楚的。

如果活动窗口被拆分成窗格且没有冻结,那么ScrollRow和ScrollColumn属性引用第1个窗格,即窗口左上方的窗格(如果拆分成4个窗格的话),或者窗口左侧或上方的窗格(如果拆分成2个窗格的话)。

如果要指定滚动的窗格,可以使用类似下面的语句,例如,在第2个窗格中滚动到距离最左侧列10列:

代码语言:javascript复制
ActiveWindow.Panes(2).ScrollColumn= 10

如果拆分的窗格被冻结,那么ScrollRow和ScrollColumn属性将把冻结的区域排除在外,仅影响没有被冻结的区域。

设置滚动区域

示例代码:

代码语言:javascript复制
'设置工作表的滚动区域
'限制在单元格区域C5:J30
ActiveSheet.ScrollArea= "C5:J30"
但是,用户仍然能够通过在名称框中输入单元格地址来访问不在滚动区域中的任何单元格。
'解除滚动区域的约束
ActiveSheet.ScrollArea= ""

工作表标签

隐藏和取消隐藏工作表标签

示例代码:

代码语言:javascript复制
'隐藏和取消隐藏活动窗口中工作表标签
ActiveWindow.DisplayWorkbookTabs= False '隐藏
ActiveWindow.DisplayWorkbookTabs= True  '取消隐藏
'隐藏和取消隐藏特定工作表
Sheets(3).Visible =xlSheetHidden '隐藏第3个工作表
Sheets(3).Visible =xlSheetVisible '取消隐藏第3个工作表

可以通过下列方式引用特定工作表:

1. 工作表标签名

2. 工作表索引值(即在工作簿中该工作表标签的位置)。即使工作表被隐藏,其索引值不会改变。如果没有被隐藏的工作表,那么最左侧的工作表标签是工作簿中的第1个工作表,其索引值为1。

3. 工作表代码名称(在VBE编辑器的属性窗口中可以看到)

下面的代码展示了隐藏工作表之前引用工作表的3种不同的方法:

代码语言:javascript复制
'隐藏名为Sheet3的工作表
Sheets("Sheet3").Visible= xlSheetHidden
'隐藏工作簿中的第3个工作表
Sheets(3).Visible =xlSheetHidden
'隐藏代码名称为Sheet3的工作表
Sheet3.Visible =xlSheetHidden

使用代码名称引用工作表的优点在于:即便用户移动和重命名工作表,或者添加工作表,VBA代码将仍然引用的是正确的工作表。然而,其缺点在于不能引用不同工作簿中的工作表。

设置工作表标签颜色

示例代码:

代码语言:javascript复制
'修改工作簿中工作簿标签颜色
Sheets(1).Tab.Color =vbGreen
'恢复工作表标签颜色为无色
Sheets(1).Tab.Color =False

注意,代表颜色值的常量可以在VBA帮助系统中查找。

缩放工作表

缩小和放大工作表

代码语言:javascript复制
'缩小和放大活动窗口中活动工作表的显示尺寸
'放大至120%
ActiveWindow.Zoom = 120
'缩小至80%
ActiveWindow.Zoom = 80

状态栏

隐藏和取消隐藏状态栏

示例代码:

代码语言:javascript复制
'隐藏状态栏
Application.DisplayStatusBar= False
'取消隐藏状态栏
Application.DisplayStatusBar= True

写入或读取状态栏

示例代码:

代码语言:javascript复制
'将信息写入状态栏
Application.StatusBar ="工作中......"
'从状态栏中读取信息
Debug.PrintApplication.StatusBar

重置状态栏

示例代码:

代码语言:javascript复制
'恢复状态栏为其正常状态
Application.StatusBar =""

网格线

下面的介绍改变工作表网格线外观的示例代码。

隐藏和取消隐藏网格线

示例代码:

代码语言:javascript复制
'隐藏和取消隐藏当前窗口中当前工作表的网格线
'隐藏网格线
ActiveWindow.DisplayGridlines= False
'取消隐藏网格线
ActiveWindow.DisplayGridlines= True

工作簿可能有多个窗口,你正处理的工作簿窗口是活动窗口。在当前窗口中滚动活动工作表不会导致在其他非活动窗口中的滚动。活动工作表可以是标准工作表、图表工作表、宏工作表或者对话框工作表。

设置网格线颜色

示例代码:

代码语言:javascript复制
'更改活动窗口中活动工作表上网格线颜色
ActiveWindow.GridlineColorIndex= 3
'3代表红色, 4代表绿色,5代表蓝色
'重新设置网格线为其默认颜色
ActiveWindow.GridlineColorIndex= xlColorIndexAutomatic

说明:本专题系列大部分内容学习整理自《Dissectand Learn Excel VBA in 24 Hours:Changingworkbook appearance》,仅供学习研究。

欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。

0 人点赞