日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Excel中你學什么都可以,千萬別學“宏”!

 撥絲留其產(chǎn) 2016-03-20

蘭色曾對很多Excel技巧和函數(shù)高手說,千萬別學宏。因為一旦愛上宏編程,Excel圈里很快就會少了一個技巧或函數(shù)高手!Why? 耐心看下去你就會明白。


一、什么是


先舉個例子:


Excel有一個任務:在C列值的基礎上加上B列的值。

  1. 選取B列并復制

  2. 選取C列右鍵 - 選擇性粘貼 - 加

完成!



如上,你在Excel中進行的一系列的操作過程,就是一個宏。操作過程(宏)可以是一步也可以是若干步,使用一個Excel命令或多個Excel命令。


宏,我們也可以看成是一個個可以完成特定目標的功能


二、為什么學習宏?


Excel提供了很多功能,可以完成各種操作。篩選數(shù)據(jù)有自動篩選和高級篩選,匯總數(shù)據(jù)有分類匯總、數(shù)據(jù)透視表等.......



但....還是有Excel無能為力的時候。比如:

  • 批量取消工作表隱藏

  • 批量合作多個工作表或Excel文件

  • 批量......


有難題就需要有解決辦法,怎么辦,怎么辦? 


有辦法。就是Excel中沒有的功能,我們自已添加,也就是我們自已編寫可以完成指定功能的。就象Excel內(nèi)置功能一樣,可以供我們隨時使用。


三、怎么編寫宏


有一種語言,它的名稱叫VBA(visual baisic for application),它是Excel所支持的開發(fā)語言,也就是說,我們可以用VBA語言來編寫我們需要的功能(),除此之外,我們還可以用VBA來編寫Excel函數(shù)。


四、在哪編寫宏


有一個窗口,都叫它VBE編輯器。你可以在工作表標簽上右鍵菜單中點擊”查看代碼“,就可以打開它。更多的是我們通過”開發(fā)工具“選項卡打開這個界面。




需要什么功能,就可以編寫什么功能,需要什么函數(shù),就可以編寫什么函數(shù),工作中再也沒有我們完不成的任務。


還有什么理由可以讓我們不向往強大的宏編程VBA語言),這也可以解釋,為什么很多函數(shù)高手放棄讓人炫暈的Excel數(shù)組公式學習,技巧高手放棄繁雜的內(nèi)置功能研究了。




附:蘭色最近寫的幾段常用VBA代碼


1、禁止插入工作表

Private Sub Workbook_NewSheet(ByVal Sh As Object)

  MsgBox '本工作簿禁止插入新工作表'

  Application.DisplayAlerts = False

   Sh.Delete

  Application.DisplayAlerts = True

End Sub


2、禁止打開Excel文件

Private Sub Workbook_BeforePrint(Cancel As Boolean)

 MsgBox '此excel文件禁止打印,如需打印請與管理員聯(lián)系'

 Cancel = True

End Sub


3、在VBA中調(diào)用Vlookup和Sumif函數(shù)

    Sub 調(diào)用1()

    Dim arr, arr1

      arr = Range('a2:d6')

      arr1 = Application.VLookup(Array('B', 'C'), arr, 4, 0)

    End Sub

     Sub 調(diào)用2()

     Dim T

     T = Timer

       Dim arr

       arr = Application.SumIf(Range('a2:a10000'), Array('B', 'C', 'G', 'R'), Range('B2:B10000'))

     MsgBox Timer - T

     Stop

     End Sub


4、批量取消工作表隱藏

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

5、拆分表格成單獨的Excel文件


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


6、合并多個Excel文件到一個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 Su


    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多