excel里面有很多強大的公式,可以快速實現(xiàn)我們想要的結(jié)果。如果在vba中可以使用公式,可以大大減少編碼,提升工作效率!這么強悍的功能讓我們一起學(xué)習(xí)一下吧! 我們直接通過案例來學(xué)習(xí)公式在vba中的使用 題目: 實現(xiàn)多個工作表數(shù)據(jù)的查詢,統(tǒng)計功能,如下圖: 分析:
代碼:
'查詢部分代碼Sub chaxun()'如果出現(xiàn)錯誤繼續(xù)向下執(zhí)行,防止程序崩潰On Error Resume Next'執(zhí)行查詢前清空數(shù)據(jù),防止沒找到查詢數(shù)據(jù),上條數(shù)據(jù)信息仍在Sheet1.Range('d14').ClearContentsSheet1.Range('d16').ClearContentsSheet1.Range('d18').ClearContentsSheet1.Range('d20').ClearContentsSheet1.Range('d22').ClearContentsFor i = 2 To Sheets.Count'在A到H列中查找該準(zhǔn)考證號學(xué)生的姓名Sheet1.Range('d14') = Application.WorksheetFunction.VLookup(Sheet1.Range('d9'), Sheets(i).Range('a:h'), 5, 0)'在A到H列中查找該準(zhǔn)考證號學(xué)生的性別Sheet1.Range('d16') = Application.WorksheetFunction.VLookup(Sheet1.Range('d9'), Sheets(i).Range('a:h'), 6, 0)'在A到H列中查找該準(zhǔn)考證號學(xué)生的專業(yè)Sheet1.Range('d18') = Application.WorksheetFunction.VLookup(Sheet1.Range('d9'), Sheets(i).Range('a:h'), 3, 0)'在A到H列中查找該準(zhǔn)考證號學(xué)生的總分(原始分)Sheet1.Range('d20') = Application.WorksheetFunction.VLookup(Sheet1.Range('d9'), Sheets(i).Range('a:h'), 8, 0)'查找到數(shù)據(jù)的表名也就是學(xué)生所在地區(qū)Sheet1.Range('d22') = Sheets(i).Name'查到了,就退出循環(huán)If Sheet1.Range('d14') <> '' ThenExit ForEnd IfNextEnd Sub 上面我們用到的是工作表函數(shù),vba也有自己的函數(shù),下面一起來看兩個簡單的小例子! 例1: 利用vba的split函數(shù)實現(xiàn)下面功能(當(dāng)然工作表mid函數(shù)也能完成) 用法:
代碼: Sub tiqu() On Error Resume Next For i = 2 To Sheet2.Range('a65536').End(xlUp).Row Sheet2.Range('b' & i) = Split(Sheet2.Range('a' & i), '-')(2) & '年 第' & Split(Sheet2.Range('a' & i), '-')(3) & '周' Next End Sub 例2:查找郵箱zhangsan@163.com 中@在第幾位 用法:InStr('zhangsan@163.com', '@')總結(jié): 這個案例我們用到了三個工作表函數(shù)公式CountA,CountIf,VLookup和兩個vba函數(shù)Split,instr.不熟練的小伙伴趕快去學(xué)習(xí)一下,后面我會整理一份excel和vba的函數(shù)供小伙伴參考。 每天學(xué)一點,薪資翻一番??戳诉@篇文章覺得對你有用的話,關(guān)注我的公眾號“學(xué)會數(shù)據(jù)分析”并且用你的小手幫忙分享一下,我會經(jīng)常總結(jié)一些案例和大家一些分享。 |
|