1970年,出现了一种专门为普通人而设计的简单易学的新语言Visual Basic,简称VB。甚至只需要了解150个左右的英语单词,就能轻易的学会使用它。后来微软吸收了VB的特性,改进了这门语言,用在Office系列软件中,称之为Visual Basic for Applications,简称VBA。VBA专门用来自动化重复性工作和批量计算等。VBA简单易学,只要安装了Office比如Excel,Word等软件,就可以打开VBE编辑器编写VBA代码。1993年,微软发布了Excel 5.0,并且首次在Excel 5.0中加入了VBA,以处理繁琐而重复的工作。后面随着Excel新版本的发布,VBA也在每一次更新中逐步改进。
其实VBA最初设计出来就是为普通人解决重复性任务和工作的,非常简单易学。通过简单的学习了解,加上Excel本身的录制宏代码功能,应用上就完全没问题了。本来VBA就是为普通人设计的,其实本系列并不是要讲VBA,如果想要学习,这方面的教材不少。我仅仅是整理了一些通用的代码,不需要懂编程和代码就可以使用,可以大大方便Excel数据处理工作。结合前面8篇基础进价到公式高手系列,你会爱上强大的Excel的。
在这篇文章中,鄙人将会列出一些非常实用的VBA代码,让你的Excel表格处理工作大大加快,节省下很多的时间用来干更有意思的事情。主要还是Excel中的大量重复性工作都可以自动交由VBA来完成。这些都是非常实用的代码,拿来稍微改一下就能够胜任你的工作。整理在你的私人工具库里面,用的时候直接调用,大大方便自己的工作。
虽然Excel可以通过录制宏来生产VBA代码,但是通过录制宏的方式得到的代码掺杂了太多我们并不需要的代码,从而影响到运行效率。鄙人会通过实例结合的方式,甚至会教你如何调用VBA,让它帮你完成工作。即使你没有接触过任何编程语言,也能通过这篇文章调用VBA。在你体会到VBA带来的方便的同时,我希望你能同时打开新技能的窗户,通过简单学习即可拷贝网上大部分VBA为你所用。想想以后重复性数据整理啥的工作都可以通过VBA解决,提高自身竞争力的同时还能剩下时间。即使不会代码也能更快速的处理电子表格,仅仅需要简单了解和修改,其实大部分重复性工作都能胜任了。
好了,废话不多说,以下介绍的这些代码后面会提供一份BAS格式的文件,下载一个notepad++或者直接用记事本打开,复制你需要的那一段代码到VBE编辑器运行。因为这是Excel VBA导出格式,你也可以下载下来,导入进你的Excel就可以使用。还可以把这个文件保存到微盘或者网盘啥的,随时随地使用,工具本身就是为了简化工作的。也可以收藏这几篇文章以备不时之需。
开始之前先简单介绍在Excel中怎样使用VBA,要在Excel中使用VBA,需要以下几个步骤:
第一步:需要打开你想执行VBA的Excel文件;
第二步:按下ALT + F11组合键,就可以打开VBE编辑窗口。
第三步:在窗口上找到”插入”->”模块”,在这弹出来的这个编辑器里面复制粘贴你要用的代码就行了。
VBE打开方式
复制完你需要的代码之后,通过以下几个步骤来执行VBA。
第一步:回到Excel主界面,点击菜单栏上的“开发工具”菜单,或者按Alt+ F8。
第二步:点击“宏”,在弹出的对话框选择你需要执行的宏。
第三步:点击运行即可。
运行宏
万一你的Excel主界面没有开发工具这个选项卡呢?很简单,点击Excel的“文件”菜单,找到“选项”,点击进去,找到“自定义功能区”,点击它。在右边找到“开发工具”,在“开发工具”前面的小方框打钩。回到主界面就可以看到开发工具出来啦。现在的已经讲解完毕,开始实用VBA代码的讲解。让我们一起来学习如何使用这些实用代码来帮助自己做重复性工作以及节省时间吧。
注意事项:你会发现里面有一些单引号后面有文字,这个是注释。解释这段代码用途的,不会影响到代码的运行。比如下面这段代码第一的单引号后面跟的文字就是解释这段代码的用途的。
1、下面这段代码显示所有隐藏的工作表,因为有时候我们的工作表太多了,所有会隐藏一些工作表。但是显示的时候只能用鼠标一个个显示,不方便。下面这段代码显示所有隐藏的工作表,非常方便。
'单引号后面是注释,这段代码显示所有隐藏的工作表
Sub UnhideAllWoksheets()
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
ws.Visible = xlSheetVisible
Next ws
End Sub
2、下面这段代码隐藏除活动工作表以外的所有工作表。
'隐藏除活动工作表以外的所有工作表
Sub HideAllExceptActiveSheet()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> ActiveSheet.Name Then ws.Visible = xlSheetHidden
Next ws
End Sub
3、按照字符顺序排序工作表。
'这段代码按照字符顺序排序工作表
Sub SortSheetsTabName()
Application.ScreenUpdating = False
Dim ShCount As Integer, i As Integer, j As Integer
ShCount = Sheets.Count
For i = 1 To ShCount - 1
For j = i + 1 To ShCount
If Sheets(j).Name < Sheets(i).Name Then
Sheets(j).Move before:=Sheets(i)
End If
Next j
Next i
Application.ScreenUpdating = True
End Sub
4、一次性保护工作簿中所有的工作表。
'一次性保护所有的工作表
Sub ProtectAllSheets()
Dim ws As Worksheet
Dim password As String
password = "Test123" '将Test123替换成你自己的密码
For Each ws In Worksheets
ws.Protect password:=password
Next ws
End Sub
5、一次性取消保护所有的工作表。
'一次性取消保护所有工作表
Sub ProtectAllSheets()
Dim ws As Worksheet
Dim password As String
password = "Test123" '将Test123替换成你设置的密码即可
For Each ws In Worksheets
ws.Unprotect password:=password
Next ws
End Sub
本篇就讲这几个吧,后面还会有1篇,总共有17段实用的代码整理在这些文章中,全部放在一篇太长了,不方便查看。这几个只是引子,后面会以目录的形式排列,查看目录是否有自己需要的代码,然后进去复制粘贴使用即可。