利用Excel中VBA代碼批量生成詢證函的方法
在上個月,小編分享了一篇《利用word郵件合併功能批量製作詢證函方法》的技術文,得到了大家的一致收藏和轉發。下面,閑客再給大家推薦另外一種方法,純利用Excel的方式來生成詢證函。當然這種方式通常我是用來進行內部函證用的,核心雖然只有幾行代碼,但實現的效果和之前的Word也是有異曲同工之處。(VBA代碼不要自己多麼專業,其實套路都是一樣的)下面,小編就簡單的給大家介紹一下:
一、首先,你要有一個較為完整<集團內部往來詢證函>模板。比如下面這樣:集團內部往來詢證函
首先,你要根據集團內往來業務涉及到的項目,進行編製詢證函模板。截止日期我用的是時間函數(="截止日期:"&YEAR(TODAY())&"年"&MONTH(TODAY())&"月"&DAY(TODAY())&"日")。上面的數字都是測試用的,在你自己做的時候為了美觀可以全部清空。當然,你可能注意到三個藍色道道,這裡要用到SUM()函數,對類目金額進行匯總。
二、其次,要對應模板的科目,在Excel中新建一個內部客商明細。比如下面這樣:內部客商明細表
大家可以根據需要自行分類,這個分類只是簡單的按科目進行了劃分。在實際經營活動中,未必會有這麼簡單的事情。比如:我方銷售的產品作為內部交易-存貨銷售(營業收入)入賬,對方單位可能部分歸入採購商品計入營業成本、部分歸入固定資產,計入固定資產採購。這樣的情況,按照上述明細劃分,就會出現問題。所以大家要具體問題具體對待,靈活運用模板。
三、下面,就是小編的大招了,VBA代碼。示例如下(可直接複製使用,建議在電腦端看):
我的工作表
VBA代碼
Sub xzh()"此處為定義一個VBA函數,不用修改。(覺得xzh這個名字難聽,不介意改成別的)
Dim Mypath$, sht As Worksheet, arr, i& "此處為定義了一些數據類型,不用修改。
Application.ScreenUpdating = False "設定工作表數據發送變化禁止實時更新
Application.DisplayAlerts = False "這個說白了就是禁止在運行中出現消息彈窗
For Each sht In Worksheets "遍歷當前工作簿中包含的所有工作表
If sht.Name <> "客商明細" And sht.Name <> "詢證函模板" And sht.Name <> "手動模式" Then sht.Delete" 設定 如果工作表的名字不是<客商明細>、<詢證函模板>、<手動模式>,就進行刪除。
Next"語句不可刪
arr = Sheets("客商明細").[a2].CurrentRegion"不可刪,將對應某客商明細數據存儲到數組中
For i = 3 To UBound(arr) "開始遍曆數組
With Sheets("詢證函模板") "不可刪,下面的就是模板位置和客商明細位置進行對應
.[c6] = arr(i, 4) "應收票據
.[c7] = arr(i, 5)"應收賬款
.[c8] = arr(i, 6) "其他應收款
.[c9] = arr(i, 7) "預付賬款
.[d10] = arr(i, 9) "應付賬款
.[d11] = arr(i, 10) "預收賬款
.[d12] = arr(i, 11) "其他應付款
.[c13] = arr(i, 12) "長期應收款
.[d14] = arr(i, 4)"長期應付款
.[c16] = arr(i, 14) "營業收入
.[c17] = arr(i, 13) "對方作為固定資產入賬銷售
.[c19] = arr(i, 15) "銷售商品、提供勞務
.[c20] = arr(i, 16) "其他現金流
.[g3] = arr(i, 3)"公司名稱
.Copy , Sheets(Sheets.Count) "複製該模板,並創建一個新的工作簿
ActiveSheet.Name = arr(i, 3) "定義工作表名稱為客商名稱
End With "後面的不可刪,我就不寫注釋了
Next
Sheets("詢證函模板").Select
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
到這裡,主體的結構已經構造完成了。不知道大家是否已經明晰,還有一些簡單的細節操作我補充在這裡。
VBA的編輯及調用(以office2016為例)
示例
點擊宏或者查看代碼,都可以進行編輯或者創建VBA代碼。點擊<插入>按鈕,可以選擇一個窗體控制項,插入到客商明細表中,然後右擊,指定創建的宏即可。
最後,你將所有客商相關科目信息補充進入,點擊按鈕,即可生成若干個工作表,每張表對應一家客商的全部往來信息,然後批量核對、列印、蓋章、留檔即可。
推薦閱讀:
※【代碼應用】用代碼製作的邊框
※調整的山東省交通違法行為代碼
※光臨代碼###
※simditor + highlight.js實現代碼高亮
※不用代碼的精美信紙