利用VBA实现工作表批量显示/隐藏

【Excel VBA】玩转Excel VBA系列(一)如何在VBA中隐藏Excel应用程序窗口 如何在VBA中隐藏Excel应用程序窗口 玩转VBA。 阅读详情

引言

工作表批量显示/隐藏的UI设计与功能实现,主要是为了在处理包含大量工作表的工作簿时,我们可以根据需求快速隐藏多个非必需的工作表,或者只显示少量但必要的工作表。

工作表批量显示/隐藏的演示GIF

UI设计

这里主要使用到了两个列表框和两个按钮控件,主界面设计和相关控件命名如下所示。

图片
界面设计

窗体和控件

命名

窗体

UserForm1

列表框(可见工作表)

lbVisibleSheets

列表框(不可见工作表)

lbHiddenSheets

按钮(→)

cmdbHidden

按钮(←)

cmdbVisible

值得注意的是,列表框的MultiSelect属性,需设置为2-fmMultiSelectExtended。只有这样,我们才可以更灵活地通过Shift、Ctrl键选择列表框的多个项目。

设置MultiSelect属性

VBA实现代码

1.窗体初始化

加载[可见工作表]在左侧的列表框,加载[不可见工作表]在右侧的列表框。

Private Sub UserForm_Initialize()
    Dim sht As Worksheet
    For Each sht In ActiveWorkbook.Worksheets
        If sht.Visible = xlSheetVisible Then
            Me.lbVisibleSheets.AddItem (sht.Name)
        Else
            Me.lbHiddenSheets.AddItem (sht.Name)
        End If
    Next
End Sub

2.将多个工作表隐藏

Private Sub cmdbHidden_Click()
    '清空【不可见工作表】列表框
    lbHiddenSheets.Clear
    '将选中的项目设置为不可见,同时从【可见工作表】列表框移除
    For i = lbVisibleSheets.ListCount - 1 To 0 Step -1
        If lbVisibleSheets.Selected(i) And GetVisibleShtCount(ActiveWorkbook) > 1 Then
            Sheets(lbVisibleSheets.List(i)).Visible = False
            lbVisibleSheets.RemoveItem (i)
        End If
    Next
    '重新加载【不可见工作表】列表框
    Dim sht As Worksheet
        For Each sht In ActiveWorkbook.Worksheets
            If sht.Visible <> xlSheetVisible Then
                lbHiddenSheets.AddItem (sht.Name)
            End If
        Next
End Sub

3.将多个工作表显示​​​​​​​

Private Sub cmdbVisible_Click()
    '清空【可见工作表】列表框
    lbVisibleSheets.Clear
    '将选中的项目设置为可见,同时从【不可见工作表】列表框移除
    For i = lbHiddenSheets.ListCount - 1 To 0 Step -1
        If lbHiddenSheets.Selected(i) Then
            Sheets(lbHiddenSheets.List(i)).Visible = True
            lbHiddenSheets.RemoveItem (i)
        End If
    Next
    '重新加载【可见工作表】列表框
    Dim sht As Worksheet
        For Each sht In ActiveWorkbook.Worksheets
            If sht.Visible = xlSheetVisible Then
                lbVisibleSheets.AddItem (sht.Name)
            End If
        Next
End Sub

4.辅助函数

功能:获取全部可见工作表的数量。

应用:只有在全部可见工作表的数量>1时,才能将可见工作表隐藏。

Function GetVisibleShtCount(ByVal wb As Workbook) As Integer
    Dim count As Integer
    count = 0
    For Each sht In wb.Sheets
        If sht.Visible = xlSheetVisible Then
            count = count + 1
        End If
    Next
    GetVisibleShtCount = count
End Function
用python的xlwings模块实现excel工作表批量隐藏和取消隐藏 学习python后,一开始用openpyxl操作excel,最近一直在使用研究xlwings这个功能强大的excel操作库,一开始用就爱不释手。 操作excel一直有一个痛点,那就是excel工作表的隐藏和取消隐藏。如果要隐藏的工作表很少,那就没必要用程序了。可是你可以想象一下,如果要隐藏和取消隐藏的工作表有5个以上,而且每个月,每周,甚至是每天都要重复这样的操作,会是怎样一个机械劳动的痛苦过程。... 阅读详情

相关推荐

【VBA(三):操作工作表】【Worksheets工作表对象+Application主程序对象+小结及练习】

本章主要内容:Worksheets工作表对象,Application主程序对象,小结及练习。

LinGavinQ 3217

VBA:隐藏sheet表

隐藏sheet表

weixin_51465537的博客 3070

Excel快速批量取消隐藏的工作表,让工作表无处遁藏

在制作Microsoft Excel工作簿时,一般情况下很少会删除源数据所在的Excel工作表,通常的操作办法就是将暂时不用的Excel工作表隐藏起来,这样操作相当于间接删除了无用Excel工作表,被隐藏的Excel工作表中的数据不参与计算,同时保证了整个工作簿的美观性和阅读性。首先右键单击任意工作表,然后左键单击右键菜单中的【取消隐藏】选项,最后在取消隐藏对话框中选择工作表,接着左键单击【确定】按钮即可取消工作表的隐藏。只需右键单击需要隐藏的工作表,然后左键单击右键菜单中的【隐藏】选项即可完成。

weixin_44454189的博客 968

VBA  如何发现EXCEL工作簿里是否有深度隐藏工作表

1 如果有的工作表sheet设置了 visible属性为 xlsheetVeryHide visible属性,设置为 xlsheetVeryHide -2 不光在excel 列表里 无法看到 在sheet表右键点菜单,也不会出现 取消隐藏,也就是无法通过 菜单呼出 2 方法1:在VBE编辑器内能看到深度隐藏的worksheet 3 方...

奔跑的犀牛先生 3033

VBA教程:实现Excel中隐藏工作表的取消与保护管理

VBA编辑器是一个集成开发环境(IDE),它为开发者提供了编写、测试和调试VBA代码的功能。要打开VBA编辑器,通常需要在Excel中按下Alt + F11快捷键。编辑器界面包括菜单栏、工具栏、项目资源管理器、代码窗口、属性窗口等部分。代码窗口是编写VBA代码的主要区域,而项目资源管理器则展示了当前打开的Excel工作簿内的所有VBA项目和对象。通过项目资源管理器,开发者可以轻松地导航到特定的模块、过程或表单。在使用VBA进行Excel宏编程时,常常会涉及到一些重要的代码和敏感数据。

weixin_35266799的博客 1632

A Side Scan Sonar Image Denoising Algorithm Based on Compound of Fuzzy Weighted Average and Kalman F

Abstract 水下侧扫声纳图像的噪声来源:高斯噪声、脉冲、斑点噪声。 传统方法只能移除部分噪声,并且去噪后容易造成细节模糊。 本文在考虑到噪声的随机性以后,提出一种融合了模糊加权平均和卡尔曼滤波的去噪方法。 在最大化保留图像细节的基础上,同时去除高斯噪声和脉冲噪声 一.Introduction 由于海底环境和声波自身干涉的影响,声纳图像生成的图像难免会有噪点。声纳采集的图像通常会有高斯噪声、脉...

qq_44516871的博客 927

VBA脚本: excel隐藏和展开指定行 【图文】

【代码】VBA脚本: excel隐藏和展开指定行 【图文】

ResumeProject的博客 2135

unity pc运行包导入glb

本文介绍了在Unity中实现GLB/GLTF模型动态导入的方法。主要使用glTFast插件进行模型导入,配合StandaloneFileBrowser实现文件选择功能。文章提供了详细的插件安装方式(包括国内镜像源),并给出了核心导入脚本代码。脚本实现了模型加载、父对象设置、材质修复等功能,解决了常见的材质显示异常问题。该方法支持编辑器和PC平台,兼容不同版本的glTFastAPI,通过简易UI操作即可完成模型导入,适合需要运行时加载3D模型的Unity项目开发。

懒懒的蓝的博客 544

EXCEL之利刃出鞘----VBA 彻底隐藏工作表

今天和大家分享的是隐藏工作表的方法。普通情况下,也是大家所熟知的方法,就是右键点击所要隐藏的工作表然后选择hide。操作如下再找sheet2就不见了。如果再显示呢,右键点击工作表标签,然后选择unhide选择需要之前被隐藏的工作表以将其显示出来。如上操作,我们隐藏工作不能达到例如 隐藏数据源,隐藏不想让其他人看到的数据的目的对不对。下...

weixin_34150503的博客 1660

Verilog的综合指令

Synopsys综合指令

烟花一时的博客 5447

iOS马甲包过审实战:如何用5天时间搞定4.3审核(附完整代码混淆方案)

本文提供了一套为期五天的高效实战方案,专门解决iOS应用因重复或抄袭问题而被App Store的4.3条款拒绝的难题。方案涵盖深度分析、代码混淆、资源翻新及环境隔离等系统性步骤,并附有完整的代码混淆示例,旨在帮助开发者在合规框架内重塑应用,显著提升过审成功率。

weixin_29234239的博客 147

VBA即用型代码手册之取消隐藏工作表及删除工作表

我给VBA下的定义:VBA是个人小型自动化处理的有效工具。可以大大提高自己的劳动效率,而且可以提高数据的准确性。我这里专注VBA,将我多年的经验汇集在VBA系列九套教程中。作为我的学员要利用我的积木编程思想,积木编程最重要的是积木如何搭建及拥有积木。在九套教程中我给出了大量的积木,同时讲解了如何搭建。为了让学员拥有更多的积木,我开始着手这部的创作。

VBA语言専攻 1319

《全连接到卷积神经网络:图像识别的演变历程》

这篇文章会从传统全连接层面临的困境说起,揭示卷积神经网络(CNN)成为图像识别核心动力的原因,探究其背后蕴含的设计思想与技术创新。但是回顾历史,CNN的出现提醒我们:技术的突破往往是由对自然规律的模仿和重新构建得来的。也许,当机器真的学会“像人一样看世界”的时候,它们的“眼睛”早就超过生物视觉的限制了。例如,用5×5的核处理224×224的输入时,只要25个参数(而不是全连接那种百万级的)。* 局部性:网络的底层只需留意局部的地方(像边缘、纹理这样的地方),不用管那些全局像素之间复杂的关系。

2401_82434295的博客 674

vba 已隐藏的方式打开excel_Excel中如何使用VBA批量取消隐藏工作表

隐藏工作表和取消隐藏工作表是经常使用到的操作。在进行隐藏的时候,可以按住Ctrl键同时隐藏多个工作表,但是如果需要显示的话,只能一个一个进行设置。今天就来介绍一下如何使用VBA来批量取消隐藏工作表。现在有一个工作簿,里面有10个工作表Sheet1-Sheet10,现在将奇数项的工作表隐藏起来。全部取消隐藏VBA代码如下:Sub UnhideWorksheets() Dim i As Work...

weixin_39833687的博客 1886

卷积层 (Convolutional Layer) 原理与代码实例讲解

卷积层 (Convolutional Layer) 原理与代码实例讲解 关键词:卷积层,卷积操作,滤波器,特征提取,神经网络 1. 背景介绍 卷积神经网络 (Convolutional N

欢迎来到我的优快云空间!这里聚焦AI大模型应用实战,分享前沿技术、实战案例与开发经验。 770

Android16 rk3576添加触摸点数上限到40个点

本文介绍了在Android 16系统上实现40点触摸支持的修改方案。相比Android 15,Android 16对API添加有更严格的要求,需要在MotionEvent.java中添加@FlaggedApi批注。主要修改包括:1)在input_framework.aconfig中定义flag;2)在MotionEvent.java中添加40个AXIS_GENERIC轴常量并添加批注;3)将32位指针ID处理改为64位适配;4)更新相关API文档。修改涉及多个核心文件,包括PointerController

tzj1058756809的博客 382

批量取消隐藏工作表 + 批量删除隐藏工作表(office2019)--2020-5-26更新(不写代码删除隐藏工作表,可使用文档检查器)

1、VBA小代码,批量取消隐藏工作表 Sub 批量取消隐藏工作表() Dim sht As Worksheet '定义变量 For Each sht In Worksheets '循环工作簿里的每一个工作表 sht.Visible = xlSheetVisible '将工作表的状态设置为非隐藏 Next End Sub ...

STR_Liang的博客 4124

windows server 2012 AD 活动目录部署系列(十一)安装证书服务器(ADCS)

本篇博文介绍如何在AD域控上安装证书服务器,本实验域环境:yun.com。 步骤如下: 1、打开“服务器管理器”,点击“添加角色和功能”,如下图: 2、点击下一步, 3、点击下一步, 4、点击下一步, 5、点击“Active Directory证书服务”,弹出功能选择,点击"添加功能",如下图,

白昼的技术专栏 2万+

excel宏实现工作表索引,点击按钮隐藏/显示对应工作表

excel宏实现工作表索引,点击按钮隐藏/显示对应工作表 当单个excel工作簿有很多工作表时,使用起来会有麻烦,虽然excel提供隐藏工作表功能,但点击及查找并不方便。如果能够在一个工作表中实现目录索引功能,点击按钮即可隐藏/显示对应工作表,会非常方便操作和查看。 一、编写宏 1编写一个点击按钮显示/隐藏工作表的按钮宏 Sub click() For x = 1 To Sheets.Coun...

qq_43025919的博客 4949

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

指定插入一行_插入命令按钮,用VBA代码控制工作表的显示与隐藏

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

weixin_36081891的博客 2032

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

VBA:VBA常用小代码合集

说起排序这个词,想必大家都不陌生,这是数据处理过程中最常见的操作之一,但我们今天聊的不是数据排序,而是如何对工作表排序。我举个例子,如下图所示,一张工作簿有N张工作表,现在需要按升序对其重新排序。操作步骤如下:首先使用以下代码将工作表的名称罗列在当前表的A列.Clear '清除所有.NumberFormat = "@" '设置文本格式End Withk = 1Cells(1, 1) = "目录"For Each sht In Sheets '遍历工作表k = k + 1 '累加个数。

nianfen的博客 6552

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

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

weixin_39844515的博客 525

VBA技术资料MF340:工作表的深度隐藏

我给VBA的定义:VBA是个人小型自动化处理的有效工具。利用好了,可以大大提高自己的工作效率,而且可以提高数据的准确度。“VBA语言専攻”提供的教程一共九套,分为初级、中级、高级三大部分,教程是对VBA的系统讲解,从简单的入门、到入门后的提高、到数据库、到字典、到Word VBA的应用、到高级网抓及类的应用、一直讲到程序的分发。另外,为了方便大家在写代码是方便查找,“VBA语言専攻”又推出了一部VBA汉英手册,这部手册覆盖了VBA的方方面面,与实际工作衔接度高。

VBA语言専攻 774

通过VBA将一个工作簿中的多个工作表拆分为多个工作簿,以工作表名称命名工作簿

前提:电脑上装有office2007或office2013等,WPS不行。 1、如果你有现成的一个工作簿含有多个工作表的文件,想分成多个工作簿的话, 可以通过office2007或office2013等打开execl,然后通过execl里面的开发工具, 输入以下运行代码,执行就行(拆分的工作簿在你设置的路径下): Sub cfb() Dim m As Integer Dim sht, sht1 As Worksheet '按照需要将分出来的表分成多个工作簿 n = InputBox(“请输入excel的

wanglepingwangleping的博客 7438

excel链接隐藏工作表_自动隐藏Excel工作表

excel链接隐藏工作表 自动隐藏Excel工作表 (Hide an Excel Worksheet Automatically) When you build a workbook for other people to use, there might be worksheets that can stay hidden some of the time. See how to hide a ...

culiao2169的博客 1550

标题隐藏_如何隐藏工作簿窗口、工作表、工作表标题栏?

1、 打开VBA编辑前,新建一个模块命名:模块1,输入以下代码实现隐藏工作簿窗口:Public Sub 隐藏工作簿窗口()Dim wb As WorkbookDim wd As WindowSet wb = Workbooks("046隐藏工作簿窗口 (1).xlsm")Set wd = wb.Windows("046隐藏工作簿窗口 (1).xlsm")With wd.Visible = Fals...

weixin_39758032的博客 1143
上一篇: 利用VBA一键将多个单元格转为复选框
下一篇: 利用VBA批量转换xls文件格式的工作簿
VBAMatrix
博客等级 码龄2年 363粉丝 82原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值