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