利用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實現代碼高亮
不用代碼的精美信紙

TAG:代碼 | 方法 | 利用 | Excel | 批量 |