专栏首页完美ExcelVBA专题10-2:使用VBA操控Excel界面之设置工作表

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

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

名称框

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

隐藏名称

示例代码:

'隐藏活动工作簿中所有名称
Dim nm As Name
For Each nm In Names
    If nm.Visible = True Then nm.Visible =False
Next nm

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

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

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

'设置为True取消隐藏
Names("MyRange1").Visible= False

公式栏

隐藏和取消隐藏公式栏

示例代码:

'隐藏和取消隐藏公式栏
Application.DisplayFormulaBar= False '隐藏
Application.DisplayFormulaBar= True  '取消隐藏

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

高度

示例代码:

'修改活动窗口中公式栏的高度
Application.FormulaBarHeight= 3 '默认高度是1

滚动条

隐藏和取消隐藏滚动条

示例代码:

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

滚动一行或一列

示例代码:

'设置距离窗格或窗口顶部的特定行
'设置距离顶部行5行
ActiveWindow.ScrollRow= 5
'设置距离窗格或窗口最左侧的特定列
'设置距离最左侧列8列
ActiveWindow.ScrollColumn= 8

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

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

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

ActiveWindow.Panes(2).ScrollColumn= 10

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

设置滚动区域

示例代码:

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

工作表标签

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

示例代码:

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

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

1. 工作表标签名

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

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

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

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

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

设置工作表标签颜色

示例代码:

'修改工作簿中工作簿标签颜色
Sheets(1).Tab.Color =vbGreen
'恢复工作表标签颜色为无色
Sheets(1).Tab.Color =False

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

缩放工作表

缩小和放大工作表

'缩小和放大活动窗口中活动工作表的显示尺寸
'放大至120%
ActiveWindow.Zoom = 120
'缩小至80%
ActiveWindow.Zoom = 80

状态栏

隐藏和取消隐藏状态栏

示例代码:

'隐藏状态栏
Application.DisplayStatusBar= False
'取消隐藏状态栏
Application.DisplayStatusBar= True

写入或读取状态栏

示例代码:

'将信息写入状态栏
Application.StatusBar ="工作中......"
'从状态栏中读取信息
Debug.PrintApplication.StatusBar

重置状态栏

示例代码:

'恢复状态栏为其正常状态
Application.StatusBar =""

网格线

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

隐藏和取消隐藏网格线

示例代码:

'隐藏和取消隐藏当前窗口中当前工作表的网格线
'隐藏网格线
ActiveWindow.DisplayGridlines= False
'取消隐藏网格线
ActiveWindow.DisplayGridlines= True

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

设置网格线颜色

示例代码:

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

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

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

本文分享自微信公众号 - 完美Excel(excelperfect),作者:fanjy

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-06-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Excel VBA解读(152): 数据结构——谈谈数组

    在VBA中,数组是一种很有用的数据结构。可以在数组中存放相关同类的数据,方便程序进行处理。本文主要较深入地讲解数组的概念。

    fanjy
  • VBA专题10-3:使用VBA操控Excel界面之设置工作表(续)

    要隐藏其他工作表中的行,只需使用该工作表代替ActiveSheet,例如使用Sheets(1)代表第1个工作表,或者使用Worksheets(1)代表第1个标准...

    fanjy
  • VBA编程练习05. 在工作表中实现七段显示

    这是一个有趣的VBA编程练习,来自于dailydoseofexcel.com。使用VBA代码在工作表中将数字显示为七段显示,如下图1所示。

    fanjy
  • Linux基础——OS简史

    L宝宝聊IT
  • 揭开云计算世界里的新服务模式

    多云、异构云、融合云是云计算的三种新的服务模式,适用于不同的信息环境。相比老旧的公有云、私有云和混合云,新的服务模式都有了很多改进,应该适用于实际部署环境。 ?...

    静一
  • 你需要的java项目练习精选

    好好学java
  • 实现SpringBoot自定义拦截器

    第一步创建一个类实现HandlerInterceptor接口,重写接口的方法,只是多了一个@Component注解,这个注解是为后面的使用时进行注入。例:

    Java编程指南
  • 莫言:人一上网就变得厚颜无耻

    网络是个被文人雅士吹唬得神乎其神的地方,也是个被同样的文人雅士贬斥得一文不值的地方。至于我个人,对于自己不懂或是不太懂的事物,总是出言谨慎,不敢轻易臧否。去年被...

    用户1756920
  • Java基础:一、每个对象都提供服务(3)

    在开发或理解一个程序设计时,最好的方法之一就是将对象想象为“服务的提供者”,程序本身将向用户提供服务,它将通过调用其他对象提供的服务来实现这一目的。

    桑鱼
  • (译)Istiod——回到单体的理由

    近五年来,我尽心尽力帮助各种组织踏入云原生之路。要让团队变得现代化并增强基于软件的产品的交付能力,人、过程以及技术决策都很重要。当应用架构的上限已经成为应对变化...

    崔秀龙

扫码关注云+社区

领取腾讯云代金券