excel为我们提供了很多好用的功能和函数,但还是有很多工作无法用现有功能和函数批量完成,比如多个excel表格的合并与拆分。而借助vba语言编写的宏代码,这些看似无法批量处理或无法完成的事情,瞬间变得只是小菜一碟,也许你不懂vba,也建议先收藏起来这些代码备用。
(第1个示例中,演示了vba代码的使用方法,后面示例均和第1个类似,不再具体演示)
1、一次取消所有工作表的隐藏
excel可以一次隐藏多个工作表,但取消工作表隐藏却需要一个个的设置,用vba编写一段代码,一秒完成!
注意
•要想使用vba功能,需要把代码粘贴到添加的模块中,详见动画演示
•要想保存vba代码,需要把文件另存为xlsm格式文件,详见动画演示
动画演示:

代码:
sub 取消隐藏()
for x =1to unt
if sheets(x).name <>"总表"then
sheets(x).visible =-1
end if
next x
end sub
sub 隐藏()
for x =1to unt
if sheets(x).name <>"总表"then
sheets(x).visible =0
end if
next x
end sub
2、根据模板批量生成日报表
根据模板批量生成报表,没什么好方法,只能一个一个的复制然后修改名称。但这对vba来说,只需点一下按钮即可瞬间完成。

代码:
sub 生成报表()
dim x as integer
dim sh as worksheet
for x =1to 31
set sh =sheets.add
with sh
.name =x &"日"
sheets("日报模板").range("1:15").py sh.range("a1")
end with
next x
end sub
3、拆分工作表为单独的excel文件
把当前excel文件中除第1个工作外的所有工作表,均保存为单独的excel文件到3月文件夹中。
拆分演示(在拆分过程中会画面会停几秒,请耐心等待)

代码:
sub 拆分表格()
dim x as integer
dim wb as workbook
application.screenupdating =false
for x =2to 32
sheets(x).py
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文件中,以单独的工作表存放。

代码:
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(unt)
end with
f =dir
loop until len(f)=0
application.screenupdating =true
end sub

延伸阅读:
普华永道建了个新办公室,刷爆财会圈!
折后价!膨胀价!定金价!这些促销方式该怎么纳税?
了解:税务检查流程图(含检查什么)