
excel宏编程
-
2023年3月18日发(作者:柴静看见读后感)为什么那么多⼈学习ExcelVBA宏编程,看了这些就明⽩了!
excel为我们提供了很多好⽤的功能和函数,但还是有很多⼯作⽆法⽤现有功能和函数批量完
成,⽐如多个excel表格的合并与拆分。⽽借助VBA语⾔编写的宏代码,这些看似⽆法批量处理
或⽆法完成的事情,瞬间变得只是⼩菜⼀碟,也许你不懂VBA,也建议先收藏起来这些代码备
⽤。
(下⾯⽰例选⾃excelVBA零基础⼊门班1~3期课件和作业内容,学习班报名联系客服特特微
信:185****0003)
(第1个⽰例中,演⽰了VBA代码的使⽤⽅法,后⾯⽰例均和第1个类似,不再具体演⽰)
1、⼀次取消所有⼯作表的隐藏
Excel可以⼀次隐藏多个⼯作表,但取消⼯作表隐藏却需要⼀个个的设置,⽤VBA编写⼀段代
码,⼀秒完成!
注意
要想使⽤VBA功能,需要把代码粘贴到添加的模块中,详见动画演⽰
要想保存VBA代码,需要把⽂件另存为xlsm格式⽂件,详见动画演⽰
动画演⽰:
代码:
Sub取消隐藏()
Forx=
IfSheets(x).Name'总表'Then
Sheets(x).Visible=-1
EndIf
Nextx
EndSub
Sub隐藏()
Forx=
IfSheets(x).Name'总表'Then
Sheets(x).Visible=0
EndIf
Nextx
EndSub
2、根据模板批量⽣成⽇报表
根据模板批量⽣成报表,没什么好⽅法,只能⼀个⼀个的复制然后修改名称。但这对VBA来
说,只需点⼀下按钮即可瞬间完成。
代码:
Sub⽣成报表()
DimxAsInteger
DimshAsWorksheet
Forx=1To31
Setsh=
Withsh
.Name=x&'⽇'
Sheets('⽇报模板').Range('1:15').('A1')
EndWith
Nextx
EndSub
3、拆分⼯作表为单独的excel⽂件
把当前excel⽂件中除第1个⼯作外的所有⼯作表,均保存为单独的excel⽂件到3⽉⽂件夹中。
拆分演⽰(在拆分过程中会画⾯会停⼏秒,请耐⼼等待)
代码:
Sub拆分表格()
DimxAsInteger
DimwbAsWorkbook
Updating=False
Forx=2To32
Sheets(x).Copy
Setwb=ActiveWorkbook
Withwb
.&'/3⽉/'&Sheets(x).Name&'.xlsx'
.CloseTrue
EndWith
Nextx
Updating=True
EndSub
4、合并多个Excel⽂件⼯作表到⼀个⽂件中
3⽉⽂件夹下有N张报表,要求把该⽂件夹中所有excel⽂件的第1个⼯作表合并到当前的excel⽂
件中,以单独的⼯作表存放。
代码:
Sub合并表格()
DimmypathAsString
DimfAsString
DimribaoAsWorkbook
Updating=False
mypath=&'/3⽉/'
f=Dir(&'/3⽉/*.xlsx')
Do
(mypath&f)
WithActiveWorkbook
.Sheets(1).Moveafter:=()
EndWith
f=Dir
LoopUntilLen(f)=0
Updating=True
EndSub