cdialog创建后马上隐藏_插入命令按钮,用VBA代码控制工作表的显示与隐藏

了解更多,观看视频

1、准备工作

打开Excel后新建一个工作簿,将sheet1工作表标签重命名为"控制面板",删除sheet2、sheet3保存,在"控制面板"的A1至A36单元格内依次输入"七⑴、七⑵、七⑶、七⑷、七⑸、七⑹、七⑺、七⑻、七⑼、七⑽、七⑾、七⑿、八⑴、八⑵、八⑶、八⑷、八⑸、八⑹、八⑺、八⑻、八⑼、八⑽、八⑾、八⑿、九⑴、九⑵、九⑶、九⑷、九⑸、九⑹、九⑺、九⑻、九⑼、九⑽、九⑾、九⑿",将作为新插入的工作表标签名称。

2、批量创建工作表

右击"控制面板"工作表标签,在弹出的快捷菜单中选择"查看代码"命令,打开VBA窗口,将下面的代码复制到其中即可。

Sub CreateSheet()

' 创建多个指定名称的工作表,工作表名称必须放在sheet1的第一列

Dim k As Integer, ShuMu As Integer, Obsht As Worksheet

ShuMu = 36 '要创建的工作表数量,可根据需要修改

Set Obsht = Sheets(1)

For k = 1 To ShuMu

Worksheets.Add , Worksheets(ThisWorkbook.Worksheets.Count)

ActiveSheet.Name = Obsht.Cells(k, 1)

' 根据sheet1的第一列中数据重命名工作表名称

Next

Set Obsht = nothing

End Sub

将光标置于将代码中,按F5键将自动创建36个工作表,并且工作表标签名称依次从七⑴一直到九⑿。

3、如何控制工作表的显示与隐藏

⑴下面通过录制一段宏来了解VBA如何控制工作表的显示与隐藏:在"开发工具"选项卡"代码"组中单击"录制宏"按钮,弹出"录制新宏"对话框,指定宏名和保存位置,单击"确定"按钮。

4b09bd1267dbbabb840245bbbfa04091.png

“录制新宏“对话框

⑵选择七⑴至七⑿工作表标签,右击,在弹出的快捷菜单中选择"隐藏"命令,这时12张工作表被隐藏了,在"开发工具"选项卡"代码"组中单击"停止录制"按钮,进入VBA窗口,发现多了一个"模块",选中其中的"模块1"有下面一段代码:

Sub 宏1()

Sheets(Array("七⑴", "七⑵", "七⑶", "七⑷", "七⑸", "七⑹", "七⑺", "七⑻", "七⑼", "七⑽", "七⑾", "七⑿")). Select

Sheets("七⑿").Activate

ActiveWindow.SelectedSheets.Visible = False

End Sub

上面代码就三行:

第一行就是选中七⑴至七⑿12个工作表;第二行是"七⑿"工作表为活动工作表;第三行就是将所有选中的工作的Visible 属性设置为False,此时工作表就被隐藏不可见了,如果设置为True就以显示了。但是直接修改Visible 属性设置为True会发生如下错误:

cad5e6b58e964bae8fe01ebfe89c91f3.png

代码运行错误提示

发生错误的原因是隐藏的工作表无法选中,自然无法将Visible 属性设置为True。我们要在此基础上对代码进行修改优化。

4、代码修改与优化

将宏1代码修改如下:

Sub 宏1()

Dim i As Integer, s

s = Array("七⑴", "七⑵", "七⑶", "七⑷", "七⑸", "七⑹", "七⑺", "七⑻", "七⑼", "七⑽", "七⑾", "七⑿")

For i = 0 To 11

Worksheets(s(i)).Visible = True

Next

End Sub

代码第一行:定义两个变量一个整型变量i和变体型变量s;

代码第二行:将常量数组赋值给变体型变量s;数组下标从0开始,即s(0)表示"七⑴",依次类推s(11)表示"七⑿",而Worksheets(s(0))就指"七⑴"工作表,依次类推Worksheets(s(11))就指"七⑿"工作表。

代码第三至五行:For-Next循环,i从0至11即将从"七⑴"至"七⑿"工作表的Visible 属性设置为True,从而显示它们。

5、新问题新矛盾

每次要显示或隐藏工作表都要进入VBA窗口,还要根据实际情况手动修改Visible 属性,或为True或为False,更不方便。

⑴插入命令按钮,将宏指定给该按钮,或者双击命令按钮,将代码复制。

选中"控制面板"工作表,在"开发工具"选项卡"控件"组中单击"插入"按钮,选择"命令按钮"类型,然后按下鼠标左键拖曳画出一个"CommandButton1"按钮,右击该按钮,在弹出的快捷菜单中选择"属性"命令,在"属性"面板中将名称修改为"CmdQi",将Caption修改为"隐藏七年级班级表",如下图:

3ce087786fc765918b6556e44b369147.png

插入命令按钮闰修改其属性

⑵双击该按钮,进入VBA窗口,并有下图显示

8e6a10977b3eab2a065e6c785deeaf27.png

命令按钮的click事件过程

将下面的代码复制粘贴到两行中间得到下图:

5150eb7160d113102f2ce179505cb881.png

显示与隐藏工作表代码

核心代码就是中间选中的条件判断区域,根据按钮"CmdQi"的Caption属性来判断,要设置显示或隐藏工作表,如果是"隐藏七年级班级表",则要隐藏工作表,要将所有范围内的工作表的Visible属性设置为False,同时"CmdQi"的Caption属性要修改为"显示七年级班级表"。如果是"显示七年级班级表",则要显示工作表,要将所有范围内的工作表的Visible属性设置为True,同时"CmdQi"的Caption属性要修改为"隐藏七年级班级表"。这里引入了一个布尔变量blnLook很好的解决了这个问题。

6、注意:

如果"开发工具"选项卡没有显示,单击"文件"→"选项"命令,打开"Excel 选项"对话框,在"自定义功能区"选项卡右侧勾选"开发工具"后单击"确定"按钮,如下图:

383ce6786f86ad1f73a5131a75ae7db2.png

启用“开发工具”选项卡

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值