网站首页/硬件软件列表/内容

Excel VBA(宏)有多强大?

硬件软件2023-01-22阅读
办公软件是指可以进行文字处理、表格制作、幻灯片制作、图形图像处理、简单数据库的处理等方面工作的软件。目前办公软件朝着操作简单化,功能细化等方向发展。办公软件的应用范围很广,大到社会统计,小到会议记录,数字化的办公,离不开办公软件的鼎力协助。另外,政府用的电子政务,税务用的税务系统,企业用的协同办公软件,这些都属于办公软件。

  excel为提供了很多好用的功能和函数,但还是有很多工作无法用现有功能和函数批量完成,比如多个excel表格的合并与拆分,而借助VBA语言编写的宏代码,这些看似无法批量处理或无法完成的事情,瞬间变得只是小菜一碟,也许你不懂VBA,也建议先收藏起来这些代码备用。

  (第1个示例中,演示了VBA代码的使用方法,后面示例均和第1个类似,不再具体演示)

  1、一次取消所有工作表的隐藏

  Excel可以一次隐藏多个工作表,但取消工作表隐藏却需要一个个的设置,用VBA编写一段代码,一秒完成!

  注意

  要想使用VBA功能,需要把代码粘贴到添加的模块中,详见动画演示

  要想保存VBA代码,需要把文件另存为xlsm格式文件,详见动画演示

  动画演示:

Excel VBA(宏)有多强大? 三联

  代码:

  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来说,只需点一下按钮即可瞬间完成。

Excel 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月文件夹中。

  拆分演示(在拆分过程中会画面会停几秒,请耐心等待)

Excel VBA

  代码:

  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文件中,以单独的工作表存放。

Excel VBA

  代码:

  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


硬件是实在的,有模有样的。软件是程序性的。是一系列的指令。有了软件,硬件才会实现更丰富的功能。

相关阅读