快生活 - 生活常识大全

你加班小时做表格我用只需秒种


  excel为我们提供了很多好用的功能和函数,但还是有很多工作无法用现有功能和函数批量完成,比如多个excel表格的合并与拆分。而借助VBA语言编写的宏代码,这些看似无法批量处理或无法完成的事情,瞬间变得只是小菜一碟,也许你不懂VBA,也建议先收藏起来这些代码备用。
  (第1个示例中,演示了VBA代码的使用方法,后面示例均和第1个类似,不再具体演示 )
  1、一次 取消所有工作表的隐藏
  Excel可以一次隐藏多个工作表,但取消工作表隐藏却需要一个个的设置,用VBA编写一段代码,一秒完成!
  注意
  要想使用VBA功能,需要把代码粘贴到添加的模块中,详见动画演示
  要想保存VBA代码,需要把文件另存为xlsm格式文件, 详见动画演示
  动画演示:
  代码:
  Sub取消隐藏()
  For x = 1 To Sheets.Count
  If Sheets(x).Name <>>
  Sheets(x).Visible = -1
  End If
  Next x
  End Sub
  Sub隐藏()
  For x = 1 To Sheets.Count
  If Sheets(x).Name <>>
  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
  (Excel精英培训)
  责编:六一
网站目录投稿:翠冬