VBA Aplication函数之 Vlookup的运用
By Mejias
前言:
因?yàn)樽约鹤罱邮至撕芏喙镜臄?shù)據(jù)分析的工作,其中由許多的重復(fù)性的操作,自己都想要通過(guò)編寫(xiě)VBA代碼簡(jiǎn)化工作。之前陸續(xù)編寫(xiě)過(guò)一些Python代碼和SQL代碼,后續(xù)將和大家分享。今天自己做了一個(gè)在工作中VBA自動(dòng)運(yùn)用excel 的Aplication函數(shù)的程序。介紹如下。
?
?
業(yè)務(wù)需求:
圖中紅色圈選為產(chǎn)品單號(hào),需要根據(jù)這個(gè)分別匹配另一張表的信息到紫色框的六列,另一張表對(duì)應(yīng)的信息如下面所示。
?
我們首先會(huì)想到的是使用Vlookup函數(shù),這也非常方便。但是因?yàn)檫@個(gè)還有另外六張表針對(duì)不同的源地由同樣的操作,實(shí)用Vlookup手動(dòng)操作便顯得非常繁瑣。
解決方法:
由于這些操作是在Excel里進(jìn)行的,編寫(xiě)Python程序用pandas自然可以很簡(jiǎn)單的實(shí)現(xiàn),但是殺雞何必用宰牛刀呢:)。于是筆者直接簡(jiǎn)單的使用VBA自動(dòng)化。自己手寫(xiě)VBA當(dāng)然可以,但是還是要費(fèi)一些腦細(xì)胞的,于是筆者的思路是自己手動(dòng)做一遍整個(gè)流程,使用宏錄制的方法,讓VBA自己取編寫(xiě)代碼,最后再手動(dòng)完善。
首先,我們把要匹配的圖都放在一個(gè)文本簿里。對(duì)兩張表格命名好。
然后,打開(kāi)開(kāi)發(fā)工具,點(diǎn)擊錄制宏。
?
接著,輸入自定義的宏名。點(diǎn)擊確定。
當(dāng)宏組的第一個(gè)控件顯示為“停止錄制時(shí)”,宏就已經(jīng)開(kāi)始錄制了。然后我們可以自己手動(dòng)操作一遍,讓宏自動(dòng)?xùn)|記錄工作流程。
?
對(duì)所需要的六列分別進(jìn)行Vlookup。雙擊單元格左下角,自動(dòng)匹配所有行。
完成工作的操作后點(diǎn)擊“停止錄制”按鈕。宏舊錄制好了。
?
接下來(lái)我們需要手動(dòng)檢查和完善以下代碼。
選擇Visual Basic編輯器,左鍵單擊進(jìn)入代碼頁(yè)面。
?
如下圖,代碼的注釋里會(huì)有剛才我們起的自定義的宏名
?
觀(guān)察代碼,會(huì)發(fā)現(xiàn)代碼有一個(gè)地方不足,那就是這里自動(dòng)下拉到的是當(dāng)前工作需要的行數(shù),當(dāng)后續(xù)工作行數(shù)增多或減少時(shí),會(huì)出現(xiàn)程序未i東下來(lái)拉到底,或者程序下拉過(guò)度出現(xiàn)很多的N/A。
?
于是這里我們手動(dòng)改一下。
首先,命名一個(gè)integer變量 a。
?
然后通過(guò)Inputbox讓程序再運(yùn)行時(shí)讓我們輸入需要運(yùn)行到的行數(shù)。
?
最后將原來(lái)代碼里的I602的行數(shù)字全部替代成字符連接符號(hào)“&”加上變量a的形式。&a
?
代碼到這里就完成了。
為了方便我們還可以插入文本框指定到這個(gè)宏,這樣運(yùn)行宏的時(shí)候就只需要雙擊表格里的文本框即可。
?
今天對(duì)工作流程里,Vlookup程序的自動(dòng)匹配就分享到這里了。歡飲有興趣的朋友留言和交流:)。
總結(jié)
以上是生活随笔為你收集整理的VBA Aplication函数之 Vlookup的运用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 名编辑电子杂志大师教程 | 主题模板设置
- 下一篇: PCB画可插器件封装的一些技巧(以LEM