美文网首页
Excel表VBA的3个实例

Excel表VBA的3个实例

作者: robotor | 来源:发表于2016-05-26 23:20 被阅读194次
     由于工作的需要,搞起了excel表。简单学习了一些VBA,记录下来,分享一下。
     什么是VBA:Visual Basic for Applications(VBA)是Visual Basic的一种宏语言,是微软开发出来在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。主要能用来扩展Windows的应用程式功能,特别是Microsoft Office软件。也可说是一种应用程式视觉化的Basic 脚本。该语言于1993年由微软公司开发的的应用程序共享一种通用的自动化语言--------Visual Basic For Application(VBA),实际上VBA是寄生于VB应用程序的版本。微软在1994年发行的Excel5.0版本中,即具备了VBA的宏功能。
     以上定义来源百度百科。
     由于临时抱佛脚,只好祭起实用主义的大旗,需要什么就学什么吧。
     第一个需求:把若干Excel工作簿中的sheet全部copy到一个新的工作簿中去。具体语句如下。
    

    Sub 工作薄间工作表合并()
    Dim FileOpen
    Dim X As Integer
    Application.ScreenUpdating = False
    FileOpen = Application.GetOpenFilename(FileFilter:="Microsoft Excel文件(.xls),.xls", MultiSelect:=True, Title:="合并工作薄")
    X = 1
    While X <= UBound(FileOpen)
    Workbooks.Open Filename:=FileOpen(X)
    Sheets().Move After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
    X = X + 1
    Wend
    ExitHandler:
    Application.ScreenUpdating = True
    Exit Sub
    errhadler:
    MsgBox Err.Description
    End Sub

     第二个需求:把新生成的Excel工作簿中的sheet按照拼音顺序排序。具体语句如下。
    

    Sub 工作表标签排序搜索()
    n = Sheets.Count
    For i = 1 To n
    Cells(i, Columns.Count).NumberFormatLocal = "@"
    Cells(i, Columns.Count) = Sheets(i).Name
    Next
    Cells(1, Columns.Count).Resize(n).Sort Cells(1, Columns.Count)
    R = Cells(1, Columns.Count).Resize(n)
    Cells(1, Columns.Count).Resize(n) = ""
    For i = 1 To n
    Sheets(R(i, 1)).Move Sheets(1)
    Next
    End Sub

     第三个需求:合并当前工作簿中所有的sheet到一个新的sheet上去。
    

    Sub 合并当前工作簿下的所有工作表()
    Application.ScreenUpdating = False
    For j = 1 To Sheets.Count
    If Sheets(j).Name <> ActiveSheet.Name Then
    X = Range("A65536").End(xlUp).Row + 1
    Sheets(j).UsedRange.Copy Cells(X, 1)
    End If
    Next
    Range("B1").Select
    Application.ScreenUpdating = True
    MsgBox "当前工作簿下的全部工作表已经合并完毕!", vbInformation, "提示"
    End Sub

    以上VBA语句都来源于网上,版权属于原作者,笔者只是搬运工,侵删。

    相关文章

      网友评论

          本文标题:Excel表VBA的3个实例

          本文链接:https://www.haomeiwen.com/subject/gjvxdttx.html