
[摘 要] 從物資供應(yīng)鏈系統(tǒng)中導(dǎo)出物資收發(fā)存Excel數(shù)據(jù),運(yùn)用Excel VBA編寫(xiě)程序生成符合財(cái)務(wù)軟件要求的導(dǎo)入數(shù)據(jù),完成大量供應(yīng)鏈憑證錄入工作,實(shí)現(xiàn)數(shù)據(jù)準(zhǔn)確、工作簡(jiǎn)化的目的。
[關(guān)鍵詞] Excel VBA;導(dǎo)入;財(cái)務(wù)軟件;供應(yīng)鏈;憑證
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2012 . 17. 002
[中圖分類(lèi)號(hào)] F232 [文獻(xiàn)標(biāo)識(shí)碼] A [文章編號(hào)] 1673 - 0194(2012)17- 0003- 06
在財(cái)務(wù)工作中經(jīng)常與Excel打交道,如果再學(xué)習(xí)一些VBA知識(shí),就可以幫助我們解決工作中需要解決的問(wèn)題。VBA是Office組件(主要是Excel)的內(nèi)置語(yǔ)言,是應(yīng)用程序開(kāi)發(fā)語(yǔ)言Visual Basic 的子集,它易于學(xué)習(xí)掌握,是一種自動(dòng)化語(yǔ)言,使常用的程序自動(dòng)化,創(chuàng)建自定義的解決方案,可以將Excel作為開(kāi)發(fā)平臺(tái)實(shí)現(xiàn)應(yīng)用程序。許多財(cái)務(wù)軟件都有Excel接口,將業(yè)務(wù)活動(dòng)、采購(gòu)活動(dòng)等輸入的信息自動(dòng)導(dǎo)入,生成總賬會(huì)計(jì)報(bào)表,取消輸入憑證這一繁瑣的過(guò)程,替代傳統(tǒng)手工操作,實(shí)現(xiàn)數(shù)據(jù)準(zhǔn)確、輸入迅速快捷。使憑證操作員的錄入工作簡(jiǎn)化,工作重心轉(zhuǎn)移到財(cái)務(wù)管理的其他方面。
1 基礎(chǔ)信息梳理
我院已有物資供應(yīng)鏈軟件,平時(shí)使用該軟件管理物資收發(fā)存,每月結(jié)賬后可以從該軟件的數(shù)據(jù)庫(kù)中導(dǎo)出符合要求的Excel數(shù)據(jù)。或者使用ADO數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)鏈接SQL數(shù)據(jù)庫(kù),取得所需的Excel數(shù)據(jù)。醫(yī)院財(cái)務(wù)軟件使用金蝶EAS,會(huì)計(jì)核算時(shí)要求物資數(shù)據(jù)入庫(kù)要核算到應(yīng)付賬款——供應(yīng)商,物資數(shù)據(jù)領(lǐng)用要能核算到使用科室。通過(guò)Excel VBA程序設(shè)計(jì)自動(dòng)應(yīng)用程序,將已有的數(shù)據(jù)生成符合金蝶EAS系統(tǒng)標(biāo)準(zhǔn)憑證導(dǎo)入要求的數(shù)據(jù)格式,可以滿足會(huì)計(jì)核算要求。
經(jīng)統(tǒng)計(jì),我院目前有1.2萬(wàn)條四級(jí)明細(xì)物料。物料編碼規(guī)則是四級(jí)9位,即第一級(jí)1位,第二級(jí)1位,第三級(jí)3位,第四級(jí)4位,相同類(lèi)型的物料都?xì)w類(lèi)到同一三級(jí)物料下。如果給最明細(xì)物料(即四級(jí)明細(xì)物料)添加上財(cái)務(wù)信息,程序運(yùn)行時(shí)會(huì)影響其速度,而三級(jí)物料(約1 380條)已經(jīng)歸納了相同的財(cái)務(wù)處理信息,因此可使用三級(jí)物料來(lái)作為程序的基礎(chǔ)信息。此外,若同一物料的使用部門(mén)不同則核算的會(huì)計(jì)科目也有所不同。按照新的《醫(yī)院財(cái)務(wù)制度》和《醫(yī)院會(huì)計(jì)制度》的規(guī)定以及《上海市醫(yī)療機(jī)構(gòu)醫(yī)療服務(wù)項(xiàng)目和價(jià)格匯編(2010版)》中的“可另收費(fèi)的一次性使用醫(yī)療器械目錄”中的明細(xì)分類(lèi)和解釋,會(huì)計(jì)科目“醫(yī)療業(yè)務(wù)成本”下設(shè)有“一次性醫(yī)療器械”,明細(xì)內(nèi)容有:手術(shù)器械類(lèi)、植入材料和人工器官、各類(lèi)介入器械、醫(yī)用材料及高分子生物材料、口腔材料、其他。為能準(zhǔn)確核算,在三級(jí)物料中將增設(shè)“手術(shù)器械類(lèi)”等類(lèi)別。對(duì)現(xiàn)有的四級(jí)明細(xì)物料進(jìn)行校對(duì),將相同的財(cái)務(wù)信息歸類(lèi)在同一三級(jí)物料下。建立《三級(jí)物料表》給物料明細(xì)中添加上財(cái)務(wù)信息,該表中有以下9列:“三級(jí)物料代碼”、“三級(jí)物料名稱”、“存貨科目代碼”、“管理費(fèi)用科目代碼”、“管理費(fèi)用支出經(jīng)濟(jì)分類(lèi)_編碼”,“管理費(fèi)用支出經(jīng)濟(jì)分類(lèi)_名稱”、“醫(yī)療業(yè)務(wù)成本科目”、“醫(yī)療業(yè)務(wù)成本支出經(jīng)濟(jì)分類(lèi)_編碼”、“醫(yī)療業(yè)務(wù)成本支出經(jīng)濟(jì)分類(lèi)_名稱”。其中“存貨科目代碼”是物料入庫(kù)時(shí)的借方科目代碼,領(lǐng)用時(shí)的貸方科目代碼;“管理費(fèi)用科目代碼”、“醫(yī)療業(yè)務(wù)成本科目”是物料領(lǐng)用時(shí)借方科目代碼;“管理費(fèi)用支出經(jīng)濟(jì)分類(lèi)_編碼”、“醫(yī)療業(yè)務(wù)成本支出經(jīng)濟(jì)分類(lèi)_編碼”是借方科目輔助賬核算項(xiàng)目編碼。
此外,如果物資供應(yīng)鏈軟件中的科室設(shè)置與金蝶EAS系統(tǒng)中的核算單元不一致,還需做一個(gè)核算單元對(duì)應(yīng)表。
經(jīng)過(guò)梳理后的三級(jí)物料格式見(jiàn)表1(節(jié)選)。
2 生成物料入庫(kù)憑證
生成物料入庫(kù)憑證時(shí)涉及3個(gè)工作表,分別是“三級(jí)物料”、“供應(yīng)鏈入庫(kù)”、“憑證”。將物資供應(yīng)軟件中的入庫(kù)數(shù)據(jù)導(dǎo)出后拷貝到“供應(yīng)鏈入庫(kù)”工作表中,物資供應(yīng)鏈入庫(kù)數(shù)據(jù)要包含“供貨單位代碼”、“供貨單位名稱”、“發(fā)票號(hào)”、“資產(chǎn)代碼”、“金額”等數(shù)據(jù)項(xiàng)。
(1)對(duì)物資供應(yīng)鏈入庫(kù)數(shù)據(jù)中的“供貨單位名稱”和“發(fā)票號(hào)”進(jìn)行排序,為以后同一家供貨單位的相同發(fā)票號(hào)生成在同一張入庫(kù)憑證內(nèi)做準(zhǔn)備。
Sheets("供應(yīng)鏈入庫(kù)").Range("A1:V"&p).SortKey1:=Range("E2"),Order1:=xlAscending,Key2:=Range("G2"),Order2:=xlAs
cending,Header:=xlGuess,OrderCustom:=1,MatchCase:=False,Or
ientation:=xlTopToBottom,SortMethod:=xlPinYin,DataOption1:=xl
SortNormal,DataOption2:=xlSortNormal
(2)為每條物料添加上存貨科目代碼,作用在于可以分清該物料入庫(kù)時(shí)核算的庫(kù)存物資科目。
m = Sheets("三級(jí)物料").Range("a65536").End(xlUp).Row’取“三級(jí)物料”數(shù)據(jù)表的記錄數(shù)
p = Sheets("供應(yīng)鏈入庫(kù)").Range("a65536").End(xlUp).Row’取“供應(yīng)鏈入庫(kù)”數(shù)據(jù)表的記錄數(shù)
Sheets("供應(yīng)鏈入庫(kù)").Range("W1").Value="存貨科目代碼"
For a = 2 To p
zcdm = CStr(Mid(Sheets("供應(yīng)鏈入庫(kù)").Range("P" & a).Value, 1, 5))
For b = 2 To m
sjdm = CStr(Sheets("三級(jí)物料").Range("A" & b).Value)
If zcdm = sjdm Then
Sheets("供應(yīng)鏈入庫(kù)").Range("W" & a).Value = Sheets("三級(jí)物料").Range("c" & b).Value
End If
Next
Application.StatusBar = "共有" & p & "條記錄,正在計(jì)算第" & a & "條數(shù)據(jù)......"
Next
(3)生成入庫(kù)憑證。物料入庫(kù)數(shù)據(jù)中財(cái)務(wù)信息已添加完成,接下來(lái)就可以生成入庫(kù)憑證數(shù)據(jù)。同一張發(fā)票上可以有多條物料,付款時(shí)是按每張發(fā)票付款,每一張發(fā)票生成一張入庫(kù)憑證,即供貨單位相同且發(fā)票號(hào)也相同生成一張憑證。憑證借方是入庫(kù)的物料,貸方是應(yīng)付賬款,掛“往來(lái)單位”輔助核算。借方摘要填寫(xiě)入庫(kù)物料名稱,貸方摘要填寫(xiě)供應(yīng)商名稱加發(fā)票號(hào),付款時(shí)可方便進(jìn)行校對(duì)。運(yùn)行到每張發(fā)票的最后一條記錄后要增加一次該發(fā)票的貸方數(shù)據(jù),顯示出該發(fā)票的合計(jì)金額。
p = Sheets(“供應(yīng)鏈入庫(kù)”).Range("a65536").End(xlUp).Row
y = 1
flh = 0 'flh:分錄號(hào)
pzh = "0001" 'pzh:憑證號(hào)
pzxh = TextBox2.Value 'pzh:憑證序號(hào)
jehj = 0 'jehj:金額合計(jì)
With Sheets("憑證")
For a = 2 To p
je = Sheets(“供應(yīng)鏈入庫(kù)”).Range("v" & a).Value 'je:金額
fph = Sheets(“供應(yīng)鏈入庫(kù)”).Range("g" & a).Value 'fph:發(fā)票號(hào)
If Sheets(“供應(yīng)鏈入庫(kù)”).Range("g" & a + 1).Value <> fph Then
flh = flh + 1
y = y + 1
jehj = jehj + je
For b = 1 To 2
y = y +( b – 1)
.Range("A" & y).Value = "****" '****:是公司代碼,此處隱去
.Range("B" & y).Value = DTPicker1.Value ' DTPicker:日期控件
.Range("C" & y).Value = DTPicker1.Value
.Range("D" & y).Value = Mid(DTPicker1.Value, 6, InStr(6, DTPicker1.Value, "-") - 6)
.Range("E" & y).Value = "物"
.Range("F" & y).Value = "'" & Format(pzh, "0000")
.Range("J" & y).Value = "BB01"
.Range("K" & y).Value = 1
.Range("N" & y).Value = 0
.Range("O" & y).Value = 0
.Range("R" & y).Value = ComboBox2.Value
.Range("U" & y).Value = 0
.Range("V" & y).Value = "FALSE"
.Range("X" & y).Value = "FALSE"
.Range("Y" & y).Value = "'" & pzxh & "--0"
If b = 1 Then
.Range("G" & y).Value = "'" & flh
.Range("H" & y).Value = Sheets("供應(yīng)鏈入庫(kù)").Range("q" & a)
.Range("I" & y).Value = Sheets("供應(yīng)鏈入庫(kù)").Range("w" & a)
.Range("L" & y).Value = "'1"
.Range("M" & y).Value = je
.Range("p" & y).Value = je
Else
flh = flh + 1
Range("G" & y).Value = "'" & flh
.Range("H" & y).Value = Sheets("供應(yīng)鏈入庫(kù)").Range("E" & a).Value & ",發(fā)票號(hào):№" & Sheets("供應(yīng)鏈入庫(kù)").Range("g" & a).Value '摘要欄顯示供應(yīng)商名稱及發(fā)票號(hào)
.Range("I" & y).Value = "'" & "2202.02"
.Range("L" & y).Value = "'0"
.Range("M" & y).Value = jehj
.Range("Q" & y).Value = jehj
.Range("AG" & y).Value = Sheets("供應(yīng)鏈入庫(kù)").Range("E" & a).Value & ",發(fā)票號(hào):№" & Sheets("供應(yīng)鏈入庫(kù)").Range("g" & a).Value '輔助賬摘要
.Range("AH" & y).Value = "往來(lái)單位"
.Range("AI" & y).Value = "ZY02." & Sheets("供應(yīng)鏈入庫(kù)").Range("D" & a).Value
.Range("AJ" & y).Value = Sheets("供應(yīng)鏈入庫(kù)").Range("E" & a).Value
.Range("BN" & y).Value = DTPicker1.Value
.Range("BO" & y).Value = "2099/7/1" '到期日
End If
Next
jehj = 0
flh = 0
pzh = pzh + 1
pzxh = pzxh + 1
Else
y = .Range("a65536").End(xlUp).Row
y = y + 1
flh = flh + 1
.Range("A" & y).Value = "11ZY"
.Range("B" & y).Value = DTPicker1.Value
.Range("C" & y).Value = DTPicker1.Value
.Range("D" & y).Value = Mid(DTPicker1.Value, 6, InStr(6, DTPicker1.Value, "-") - 6)
.Range("E" & y).Value = "物"
.Range("F" & y).Value = "'" & Format(pzh, "0000")
.Range("G" & y).Value = "'" & flh
.Range("H" & y).Value = Sheets("供應(yīng)鏈入庫(kù)").Range("q" & a).Value
.Range("I" & y).Value = Sheets("供應(yīng)鏈入庫(kù)").Range("w" & a)
.Range("J" & y).Value = "BB01"
.Range("K" & y).Value = 1
.Range("L" & y).Value = "'1"
.Range("M" & y).Value = je
.Range("N" & y).Value = 0
.Range("O" & y).Value = 0
.Range("P" & y).Value = je
.Range("R" & y).Value = ComboBox2.Value
.Range("U" & y).Value = 0
.Range("V" & y).Value = "FALSE"
.Range("X" & y).Value = "FALSE"
.Range("Y" & y).Value = "'" & pzxh & "--0"
jehj = jehj + je
End If
Next
End With
3 生成物料出庫(kù)憑證
生成物料出庫(kù)領(lǐng)用憑證時(shí)涉及5個(gè)工作表,分別是“核算單元對(duì)應(yīng)表”、“三級(jí)物料”、“供應(yīng)鏈出庫(kù)”、“出庫(kù)整理”、“憑證”。物料出庫(kù)的數(shù)據(jù),先按“存貨科目代碼”和“核算單元名稱”進(jìn)行排序,參考整理好的“三級(jí)物料”信息,在“出庫(kù)整理”工作表中添加財(cái)務(wù)信息。生成出庫(kù)領(lǐng)料憑證時(shí)以一個(gè)存貨科目為一張憑證,即貸方科目是一條記錄,借方科目則是多條記錄,是領(lǐng)用該物料的所有部門(mén)。
3.1 添加財(cái)務(wù)信息
按領(lǐng)用資產(chǎn)名稱添加存貨科目代碼;按領(lǐng)用部門(mén)的性質(zhì)進(jìn)行判斷添加“部門(mén)類(lèi)別_編碼”、“部門(mén)類(lèi)別_名稱”;按領(lǐng)用部門(mén)及領(lǐng)用資產(chǎn)的性質(zhì)進(jìn)行判斷添加“支出科目代碼”、“支出經(jīng)濟(jì)分類(lèi)_編碼”、“支出經(jīng)濟(jì)分類(lèi)_名稱”。
With Sheets("供應(yīng)鏈出庫(kù)")
n = .Range("a65536").End(xlUp).Row
m = Sheets("三級(jí)物料").Range("a65536").End(xlUp).Row
For b = 2 To m
Application.StatusBar = "《添加財(cái)務(wù)信息》運(yùn)算,共有" & n & "條記錄,正在計(jì)算第" & b & "條記錄,請(qǐng)等候......"
zcm = CStr(Left(.Range("p" & b).Value, 5)) 'zcm:Sheets("供應(yīng)鏈出庫(kù)")中的p列資產(chǎn)代碼
For d = 2 To w
wlm = CStr(Sheets("三級(jí)物料").Range("a" & d).Value) 'wlm:Sheets("三級(jí)物料")中的a列物料三級(jí)代碼
bmlb = CStr(Mid(.Range("f" & b).Value, 3, 2)) 'bmlb:部門(mén)類(lèi)別_編碼
If zcm = wlm Then
.Range("x" & b).Value = Sheets("三級(jí)物料").Range("c" & d).Value
If (bmlb = "10" Or bmlb = "20" Or bmlb = "30") Then
.Range("aa" & b).Value = Sheets("三級(jí)物料").Range("g" & d).Value
.Range("ab" & b).Value = Sheets("三級(jí)物料").Range("h" & d).Value
.Range("ac" & b).Value = Sheets("三級(jí)物料").Range("i" & d).Value
Else
.Range("aa" & b).Value = Sheets("三級(jí)物料").Range("d" & d).Value
.Range("ab" & b).Value = Sheets("三級(jí)物料").Range("e" & d).Value
.Range("ac" & b).Value = Sheets("三級(jí)物料").Range("f" & d).Value
End If
End If
.Range("y" & b).Value = "'" & bmlb
Select Case CStr(Mid(.Range("f" & b).Value, 3, 2))
Case "10"
.Range("z" & b).Value = "臨床服務(wù)成本"
Case "20"
.Range("z" & b).Value = "醫(yī)療技術(shù)成本"
Case "30"
.Range("z" & b).Value = "醫(yī)療輔助成本"
Case "40"
.Range("z" & b).Value = "行政后勤成本"
Case "50"
.Range("z" & b).Value = "公用成本"
End Select
Next
Application.StatusBar = False
Next
End With
End Sub
3.2 進(jìn)行出庫(kù)整理
相同的存貨科目、部門(mén)名稱、支出科目、支出經(jīng)濟(jì)分類(lèi)的數(shù)據(jù)將歸集到一張憑證中,摘要欄內(nèi)添加上各部門(mén)領(lǐng)用的資產(chǎn)名稱和出庫(kù)單號(hào)。
With Sheets("出庫(kù)整理")
n = Sheets("供應(yīng)鏈出庫(kù)").Range("a65536").End(xlUp).Row
.Range("a1").Value = "核算單元代碼"
.Range("b1").Value = "核算單元名稱"
.Range("c1").Value = "總金額"
.Range("d1").Value = "存貨科目代碼"
.Range("e1").Value = "部門(mén)類(lèi)別_編碼"
.Range("f1").Value = "部門(mén)類(lèi)別_名稱"
.Range("g1").Value = "支出科目代碼"
.Range("h1").Value = "支出經(jīng)濟(jì)分類(lèi)_編碼"
.Range("i1").Value = "支出經(jīng)濟(jì)分類(lèi)_名稱"
.Range("j1").Value = "摘要"
b = 2
jehj = 0
For a = 2 To n
kmdm = Sheets("供應(yīng)鏈出庫(kù)").Range("x" & a).Value 'kmdm:Sheets("供應(yīng)鏈出庫(kù)")中的x列科目代碼
kmdm1 = Sheets("供應(yīng)鏈出庫(kù)").Range("x" & a + 1).Value 'kmdm:Sheets("供應(yīng)鏈出庫(kù)")中的x列科目代碼
hsdwm = Sheets("供應(yīng)鏈出庫(kù)").Range("f" & a).Value 'hsdwm:Sheets("供應(yīng)鏈出庫(kù)")中的f列核算單元代碼
hsdwm1 = Sheets("供應(yīng)鏈出庫(kù)").Range("f" & a + 1).Value 'hsdwm1:Sheets("供應(yīng)鏈出庫(kù)")中的f列核算單元代碼
zckm = Sheets("供應(yīng)鏈出庫(kù)").Range("aa" & a).Value 'hsdwm:Sheets("供應(yīng)鏈出庫(kù)")中的aa列支出科目代碼
zckm1 = Sheets("供應(yīng)鏈出庫(kù)").Range("aa" & a + 1).Value 'hsdwm:Sheets("供應(yīng)鏈出庫(kù)")中的aa列支出科目代碼
zcjj = Sheets("供應(yīng)鏈出庫(kù)").Range("ab" & a).Value 'hsdwm:Sheets("供應(yīng)鏈出庫(kù)")中的ab列支出經(jīng)濟(jì)分類(lèi)代碼
zcjj1 = Sheets("供應(yīng)鏈出庫(kù)").Range("ab" & a + 1).Value 'hsdwm:Sheets("供應(yīng)鏈出庫(kù)")中的ab列支出經(jīng)濟(jì)分類(lèi)代碼
zje = Sheets("供應(yīng)鏈出庫(kù)").Range("w" & a).Value 'hsdwm:Sheets("供應(yīng)鏈出庫(kù)")中的w列總金額
zy = Sheets("供應(yīng)鏈出庫(kù)").Range("q" & a).Value 'hsdwm:Sheets("供應(yīng)鏈出庫(kù)")中的q列摘要
zy1 = Sheets("供應(yīng)鏈出庫(kù)").Range("q" & a + 1).Value 'hsdwm:Sheets("供應(yīng)鏈出庫(kù)")中的q列摘要
If kmdm = kmdm1 And hsdwm = hsdwm1 And zckm = zckm1 And zcjj = zcjj1 Then
jehj = jehj + zje '金額合計(jì)
'以下部分是添加摘要內(nèi)容
If zy <> zy1 Then
zyhj = zyhj + "、" + zy
End If
End If
If kmdm <> kmdm1 Or hsdwm <> hsdwm1 Or zckm <> zckm1 Or zcjj <> zcjj1 Then
jehj = jehj + zje
zyhj = zyhj + "、" + zy
.Range("a" & b) = Sheets("供應(yīng)鏈出庫(kù)").Range("f" & a).Value
.Range("b" & b) = Sheets("供應(yīng)鏈出庫(kù)").Range("g" & a).Value
.Range("c" & b) = Round(jehj, 2)
.Range("d" & b) = Sheets("供應(yīng)鏈出庫(kù)").Range("x" & a).Value
.Range("e" & b) = "'" & Sheets("供應(yīng)鏈出庫(kù)").Range("y" & a).Value
.Range("f" & b) = Sheets("供應(yīng)鏈出庫(kù)").Range("Z" & a).Value
.Range("G" & b) = "'" & Sheets("供應(yīng)鏈出庫(kù)").Range("aa" & a).Value
.Range("h" & b) = Sheets("供應(yīng)鏈出庫(kù)").Range("ab" & a).Value
.Range("i" & b) = Sheets("供應(yīng)鏈出庫(kù)").Range("ac" & a).Value
If Len(zyhj) > 150 Then
.Range("j" & b) = Mid(zyhj, 2, 150) + "等"
Else
.Range("j" & b) = Mid(zyhj, 2, 150)
End If
zyhj = ""
jehj = 0
b = b + 1
End If
Next
End With
3.3 生成出庫(kù)憑證
生成憑證時(shí)要進(jìn)行判斷,有些物料的支出科目下掛核算項(xiàng)目,而有些則不掛,在生成輔助賬時(shí)處理方法是不同的。
p = Sheets("出庫(kù)整理").Range("a65536").End(xlUp).Row
With Sheets("憑證")
pzh = TextBox3.Value
pzxh = TextBox2.Value
dfje = 0
n = 1
For a = 2 To p
bj1 = Sheets("出庫(kù)整理").Range("d" & a).Value
bj2 = Sheets("出庫(kù)整理").Range("d" & a + 1).Value
hje = Sheets("出庫(kù)整理").Range("c" & a).Value
y = .Range("a65536").End(xlUp).Row
y = y + 1
.Range("A" & y).Value = "****"
.Range("B" & y).Value = DTPicker1.Value
.Range("C" & y).Value = DTPicker1.Value
.Range("D" & y).Value = Mid(DTPicker1.Value, 6, InStr(6, DTPicker1.Value, "-") - 6)
.Range("E" & y).Value = "物"
.Range("F" & y).Value = "'" & Format(pzh, "0000")
.Range("G" & y).Value = "'" & n
.Range("H" & y).Value = Sheets("出庫(kù)整理").Range("b" & a).Value & "領(lǐng)料"
.Range("I" & y).Value = "'" & Sheets("出庫(kù)整理").Range("g" & a).Value
.Range("J" & y).Value = "BB01"
.Range("K" & y).Value = 1
.Range("L" & y).Value = "'" & "1"
.Range("M" & y).Value = Sheets("出庫(kù)整理").Range("c" & a).Value
.Range("N" & y).Value = 0
.Range("O" & y).Value = 0
.Range("P" & y).Value = Sheets("出庫(kù)整理").Range("c" & a).Value
.Range("R" & y).Value = ComboBox1.Value
.Range("U" & y).Value = 0
.Range("V" & y).Value = "FALSE"
.Range("X" & y).Value = "FALSE"
.Range("Y" & y).Value = "'" & pzxh & "--0"
.Range("AG" & y).Value = Sheets("出庫(kù)整理").Range("b" & a).Value & "領(lǐng)料"
If Not IsEmpty(Sheets("出庫(kù)整理").Range("h" & a).Value) Then
.Range("AH" & y).Value = "支出經(jīng)濟(jì)分類(lèi)"
.Range("AI" & y).Value = Sheets("出庫(kù)整理").Range("h" & a).Value
.Range("AJ" & y).Value = Sheets("出庫(kù)整理").Range("i" & a).Value
.Range("Ak" & y).Value = "部門(mén)類(lèi)別"
.Range("Al" & y).Value = "'" & Sheets("出庫(kù)整理").Range("e" & a).Value
.Range("Am" & y).Value = Sheets("出庫(kù)整理").Range("f" & a).Value
.Range("An" & y).Value = "部門(mén)名稱"
.Range("Ao" & y).Value = Sheets("出庫(kù)整理").Range("a" & a).Value
.Range("Ap" & y).Value = Sheets("出庫(kù)整理").Range("b" & a).Value
Else
.Range("AH" & y).Value = "部門(mén)類(lèi)別"
.Range("AI" & y).Value = "'" & Sheets("出庫(kù)整理").Range("e" & a).Value
.Range("AJ" & y).Value = Sheets("出庫(kù)整理").Range("f" & a).Value
.Range("AK" & y).Value = "部門(mén)名稱"
.Range("AL" & y).Value = Sheets("出庫(kù)整理").Range("a" & a).Value
.Range("AM" & y).Value = Sheets("出庫(kù)整理").Range("b" & a).Value
End If
.Range("BN" & y).Value = DTPicker1.Value
.Range("BO" & y).Value = "2099/7/1"
dfe = Sheets("出庫(kù)整理").Range("c" & a).Value
dfje = dfje + dfe
If bj1 <> bj2 Then
cs = 1
y = y + 1
n = n + 1
.Range("A" & y).Value = "11ZY"
.Range("B" & y).Value = DTPicker1.Value
.Range("C" & y).Value = DTPicker1.Value
.Range("D" & y).Value = Mid(DTPicker1.Value, 6, InStr(6, DTPicker1.Value, "-") - 6)
.Range("E" & y).Value = "物"
.Range("F" & y).Value = "'" & Format(pzh, "0000")
.Range("G" & y).Value = "'" & n
.Range("H" & y).Value = Sheets("出庫(kù)整理").Range("b" & a).Value & "等領(lǐng)料"
.Range("I" & y).Value = "'" & Sheets("出庫(kù)整理").Range("d" & a).Value
.Range("J" & y).Value = "BB01"
.Range("K" & y).Value = 1
.Range("L" & y).Value = "'" & "0"
.Range("M" & y).Value = dfje
.Range("N" & y).Value = 0
.Range("O" & y).Value = 0
.Range("Q" & y).Value = dfje
.Range("R" & y).Value = ComboBox1.Value
.Range("U" & y).Value = 0
.Range("V" & y).Value = "FALSE"
.Range("X" & y).Value = "FALSE"
.Range("Y" & y).Value = "'" & pzxh & "--0"
n = 0
pzh = pzh + 1
pzxh = pzxh + 1
dfje = 0
End If
n = n + 1
Next
End With
4 結(jié)束語(yǔ)
本文介紹使用Excel VBA生成供應(yīng)鏈憑證的具體方法。在實(shí)際操作過(guò)程中加入人性化操作界面,如增加用戶窗體操作界面、處理數(shù)據(jù)量較大時(shí)在狀態(tài)欄中顯示數(shù)據(jù)處理的程度、數(shù)據(jù)的校驗(yàn)等。我院每月自動(dòng)錄入物料憑證約400張,記錄條數(shù)約2 400條,物料數(shù)據(jù)約9 000條,在準(zhǔn)確性、完整性得到保證的前提下,物資會(huì)計(jì)工作量大幅下降。這種思路和做法可以運(yùn)用到會(huì)計(jì)核算工作的各個(gè)方面,為管理層及各有關(guān)方面提供更為詳盡的會(huì)計(jì)數(shù)據(jù)。