excel中設置累計已納稅額?原創作者: 盧子 轉自:EXCEL不加班,現在小編就來說說關于excel中設置累計已納稅額?下面内容希望能幫助到你,我們來一起看看吧!
原創作者: 盧子 轉自:EXCEL不加班
早期盧子寫過一篇文章,是用公式做的,現在學VBA了,就得嘗試用VBA來解決函數的問題。
多表查找公司的地址、納稅人識别号和開戶行及賬号
明細表,格式一模一樣,現在要将每個明細表的地址、納稅人識别号和開戶行及賬号提取到彙總表。
彙總表,根據公司名稱查找到相關的信息。
說到查找,很多人的第一反應就是VLOOKUP函數,其實查找家族人才濟濟。在彙總表的B2輸入公式,下拉和右拉。
=INDIRECT($A2&"!"&ADDRESS(COLUMN(B1),4,4))
上面是公式的解決方法,來看VBA怎麼解決的?
思路:
将金石這個表的D2:D4,選擇性粘貼,轉置到彙總的B2。同理,金土、金沙也是這樣處理。
相當于錄制一個轉置的宏,加一個循環語句就搞定。分表的内容有合并單元格,錄制出來會有問題,這裡直接用彙總表這個沒合并單元格的錄制宏。
Step 01 錄制一個選擇性粘貼,轉置的宏。
Step 02 查看剛剛錄制的宏代碼。
PasteSpecial就是選擇性粘貼的意思。
Transpose:=True就是轉置的意思。
中間那些可以暫時不用管,删除掉,這樣代碼看起來就整潔很多。
Range("D2:D4").Select
Selection.Copy
這2句的意思就是先選擇單元格D2:D4,然後對選擇的區域進行複制,可以簡化成Range("D2:D4").Copy。
同理,對下面那2句也進行簡化Range("B7").PasteSpecial Transpose:=True。
最後,嵌套循環語句,還有添加工作表名稱,代碼就完成了。
Sub 彙總()
Dim i As Integer
For i = 2 To Sheets.Count
Sheets(i).Range("D2:D4").Copy
Sheets(1).Range("B" & i).PasteSpecial Transpose:=True
Next
End Sub
運行代碼确認效果。
VBA學起來并沒有想象中那麼難,隻要你跟對人。
就像這個讀者所說的,跟錯人,一開始學習那些亂七八糟的概念,不要說是你,即便是我看着都想睡覺。學VBA要從工作上經常接觸到的表格學起,想着如何将表格變得更智能,更容易操作,要從這個觀點出發才能學好。
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!