文源:Excel培训精英
作者:兰色
我是岛叔,你好。
下面是兰色大大做的很实用的技能。请诸位考友查收,一定不要忘了练习!!
excel为我们提供了很多好用的功能和函数,但还是有很多工作无法用现有功能和函数批量完成,比如多个excel表格的合并与拆分。 而借助VBA语言编写的宏代码,这些看似无法批量处理或无法完成的事情,瞬间变得只是小菜一碟,也许你不懂VBA,也建议先收藏起来这些代码备用。 (第1个示例中,演示了VBA代码的使用方法,后面示例均和第1个类似,不再具体演示) 1、一次取消所有工作表的隐藏 Excel可以一次隐藏多个工作表,但取消工作表隐藏却需要一个个的设置,用VBA编写一段代码,一秒完成! 注意要想使用VBA功能,需要把代码粘贴到添加的模块中,详见动画演示
要想保存VBA代码,需要把文件另存为xlsm格式文件,详见动画演示
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来说,只需点一下按钮即可瞬间完成。 代码:
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月文件夹中。 拆分演示(在拆分过程中会画面会停几秒,请耐心等待) 代码:
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文件中,以单独的工作表存放。 代码:
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 ▼ 若感觉能帮助到你 岛叔希望你转发分享给更多人看到哦 岛叔的这个月的鸡腿就靠大家了
近期热文▼
岛叔跪求转个发,点个在看