excel取消隐藏_这个毁人无数的Excel黑洞,却成就一批最牛X的高手

23f741f916810573c83fe389bf218940.png

07ba9efc547ae20305537d7a74e40311.png

每当有excel函数高手对小编说,他准备学VBA了。我都会很“紧张”,因为小编知道,这世间即将又少一个excel函数高手。

ee2ccb8ad91cfbf314a9a5c139edb677.png

什么是VBA?简单的说是一种支持excel表格二次开发的语言,你想实现什么功能,用VBA写段代码即可完成。

在小编潜意识中,VBA就象一个充满诱惑的黑洞,一旦靠近,将彻底无法回头。身边有很多很多excel函数高手,自从他们开始VBA之旅,函数便开始从他们的世界慢慢淡出,再也看不到他们在函数竟赛中出神入化的公式。而,这也让一部分悟性高的函数高手上了一个更高的台阶,成为excel界传说中的大神。

Excel按功能三分天下:技巧、函数和VBA编程。技巧重出其不意、各种excel功能的最佳组合应用;函数拼的是思路、多维引用的空间想象力、各种函数的扩展及嵌套应用熟练程度;而VBA靠的经验和知识积累、逻辑判断能力以及大量跨界的语言操控能力。

如果非要比个高低的话,在超强的VBA语言面前,技巧、函数只能算是一个小学生,这也是为什么很多人学了VBA,不愿再去深学技巧和函数的原因。

小编曾分享过一个用VBA编写的快速核对工具, 瞬间即可完成复杂的一对多核对。它帮助同事几天完成了两个月都没完成的对账。

39f788608a0de39c00b8acb3c6ec6153.gif

在集团工作期间,小编70%的数据处理工作都是由VBA完成的,点一下按钮即可快速合并几百张报表,并且自动生成各种需要的月报。

给同学们贴几个常用的VBA代码:

(第1个示例中,演示了VBA代码的使用方法,后面示例均和第1个类似,不再具体演示)

1、一次取消所有工作表的隐藏

Excel可以一次隐藏多个工作表,但取消工作表隐藏却需要一个个的设置,用VBA编写一段代码,一秒完成!

注意

  • 要想使用VBA功能,需要把代码粘贴到添加的模块中,详见动画演示
  • 要想保存VBA代码,需要把文件另存为xlsm格式文件,详见动画演示

动画演示:

aa6766a7b432e29bb7056a1f2156039f.gif

代码:


Sub 取消隐藏()

For x = 1 To Sheets.Count

If Sheets(x).Name <> "总表" Then

Sheets(x).Visible = -1

End If

Next x

End Sub

Sub 隐藏()

For x = 1 To Sheets.Count

If Sheets(x).Name <> "总表" Then

Sheets(x).Visible = 0

End If

Next x

End Sub


2、根据模板批量生成日报表

根据模板批量生成报表,没什么好方法,只能一个一个的复制然后修改名称。但这对VBA来说,只需点一下按钮即可瞬间完成。

c84a4ee9c0d11413e2e800b0a7810fc0.gif

代码:


Sub 生成报表()

Dim x As Integer

Dim sh As Worksheet

For x = 1 To 31

Set sh = Sheets.Add

With sh

.Name = x & "日"

Sheets("日报模板").Range("1:15").Copy sh.Range("A1")

End With

Next x

End Sub


3、拆分工作表为单独的excel文件

把当前excel文件中除第1个工作外的所有工作表,均保存为单独的excel文件到3月文件夹中。

拆分演示(在拆分过程中会画面会停几秒,请耐心等待)

a2f6acf38a4a7dea8498fe37f4a6ee71.gif

代码:


Sub 拆分表格()

Dim x As Integer

Dim wb As Workbook

Application.ScreenUpdating = False

For x = 2 To 32

Sheets(x).Copy

Set wb = ActiveWorkbook

With wb

.SaveAs ThisWorkbook.Path & "/3月/" & Sheets(x).Name & ".xlsx"

.Close True

End With

Next x

Application.ScreenUpdating = True

End Sub


4、合并多个Excel文件工作表到一个文件中

3月文件夹下有N张报表,要求把该文件夹中所有excel文件的第1个工作表合并到当前的excel文件中,以单独的工作表存放。

733dee41effd8edca399441ee39d6720.gif

代码:


Sub 合并表格()

Dim mypath As String

Dim f As String

Dim ribao As Workbook

Application.ScreenUpdating = False

mypath = ThisWorkbook.Path & "/3月/"

f = Dir(ThisWorkbook.Path & "/3月/*.xlsx")

Do

Workbooks.Open (mypath & f)

With ActiveWorkbook

.Sheets(1).Move after:=ThisWorkbook.Sheets(Sheets.Count)

End With

f = Dir

Loop Until Len(f) = 0

Application.ScreenUpdating = True

End Sub

以上代码实现的功能在VBA中只是最常规的简单应用。正是由于excel知识深度远非一般的excel新手想象,所以当我们从excel函数向VBA编程为学习方向时,就象进入一个新的世界,无法自拔。而VBA编程的超大扩展空间远超excel技巧和函数,一旦开始就象深陷一个无底的黑洞,再无心思研究技巧和函数了。

所以,那些想转入VBA学习的函数高手们。你先问一下自已,是否做好了全力投入和暂时放弃函数的心理准备。也有很多函数高手说,我不会放弃函数的,但事实上,小编很少看到有回头的。

当然,黑洞吸食的是excel函数高手,对于一般水平的用户,还是先建议学好技巧和函数,必竟函数、技巧易学易用,虽然达不到VBA高效,但提工作效率还是离不开的。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值