亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        利用EXCEL VBA批量處理科目匯總表

        2021-03-01 23:22:49許洪品
        科學(xué)與財富 2021年29期

        摘 要:批量憑證裝訂是業(yè)務(wù)量較大單位財務(wù)基礎(chǔ)工作的一個難題。以用友財務(wù)軟件U8為例,利用Excel和VBA,通過按照預(yù)設(shè)的年、月及憑證范圍,批量完成科目匯總表、憑證封面及包角的打印,以期為提高會計基礎(chǔ)工作效率提供一種思路。

        關(guān)鍵詞:批量處理;科目匯總表;excel;VBA

        0 ?引 ?言

        隨著IT技術(shù)的不斷普及,以關(guān)系數(shù)據(jù)庫為基礎(chǔ)的管理系統(tǒng)在日常工作中得以廣泛應(yīng)用,憑證裝訂前的科目匯總表、憑證封面及包角填寫成為會計基礎(chǔ)工作一項(xiàng)必要內(nèi)容,但對憑證業(yè)務(wù)量大的單位如何對該類工作進(jìn)行批量處理成為一個難以解決的問題。目前較常見的解決辦法有兩種:一種是通過用友財務(wù)軟件進(jìn)行查詢打印;另一種是專門開發(fā)某一管理系統(tǒng)的軟件,根據(jù)操作結(jié)果來判分。但這兩種方法存在靈活性差、開發(fā)不易的問題。

        以用友U8的憑證和科目總賬為例,通過取自數(shù)據(jù)庫中的數(shù)據(jù),利用Excel和VBA,按照預(yù)定的的年、月、憑證范圍來批量完成這一過程。

        1 ?相關(guān)工作簿

        為完成批量處理過程,設(shè)計了sheet1(分冊)、sheet7(科目匯總)兩個工作表,連接分冊也為憑證信息文件,科目匯總為科目匯總表查詢結(jié)果,兩表結(jié)構(gòu)如圖1、圖2。

        1.1 ?憑證信息表:sheet1(分冊)

        如圖1所示,工作表中,B1為賬務(wù)年份,B2為賬務(wù)月份,B3為自動統(tǒng)計的憑證總冊數(shù);A列A5以下為記賬憑證第幾冊,B列B5以下為憑證起號,C列C5以下為憑證止號。

        如圖2所示,工作表的第二行取自分冊工作表,第三行A列為科目編碼;B列為科目名稱,C列為金額合計借方,D列為金額合計貸方;從第四行開始是根據(jù)用友財務(wù)軟件U8數(shù)據(jù)庫中的gl_accvouch表的內(nèi)容統(tǒng)計所得。

        批量處理分下3個步驟。

        (1)錄入憑證起止號。先在分冊表的B1輸入年份;在B2選擇月份,B2運(yùn)用數(shù)據(jù)驗(yàn)證菜單功能,設(shè)置月份序列,提供下拉列表;B3輸入函數(shù)“=COUNT(C6:C200)”,自動統(tǒng)計憑證冊數(shù)。

        然后,自C6開始向下,逐本輸入每本憑證的末張憑證號。

        (2)設(shè)文本框、命令按鈕。在sheet7(科目匯總)中,插入文本框,存儲第幾冊憑證。插入兩個命令按鈕,一個上顯示"上一頁",另一個上顯示“下一頁”。

        (3)用程序生成科目匯總表。在sheet7(科目匯總)中,按ALT+Fll進(jìn)入VBE窗口后輸入取數(shù)程序代碼,執(zhí)行后從第四行開始顯示統(tǒng)計結(jié)果。

        3 ?程序代碼

        程序代碼如下:[2]

        Sub hzb()

        Dim i

        Dim cn As New ADODB.Connection

        Dim rs As New ADODB.Recordset

        Dim strCn As String, strSQL As String

        strCn="Provider=sqloledb;Server=caiwu;Database=UFDATA_011_2019;Uid=sa;Pwd=******;"

        'strCn = "Provider=sqloledb;Server=yhcwb;Database=pubs;Uid=sa;Pwd=;"

        cn.Open strCn

        Rows("4:65536").Select

        Selection.ClearContents

        ActiveSheet.Cells(1, 1).Select

        Dim cMaxPz As String, cMinPz As String

        Dim cPZ As String

        Dim iLen As Integer, iPos As Integer

        '***取出憑證號***

        iPos = InStr(1, ActiveSheet.Cells(2, 2), "-")

        If iPos = 0 Then ?'******只輸入一個憑證號

        cPZ = ActiveSheet.Cells(2, 2)

        Else

        iLen = Len(Trim(ActiveSheet.Cells(2, 2)))

        cMinPz = Left(ActiveSheet.Cells(2, 2), iPos - 1)

        cMaxPz = Right(ActiveSheet.Cells(2, 2), iLen - iPos)

        End If

        '**寫入科目代碼和借貸余額**

        If iPos = 0 Then

        strSQL = "SELECT ?LEFT(ccode,4) AS km,SUM(md) AS jf,SUM(mc) AS df ?FROM GL_accvouch WHERE iyear="

        strSQL = strSQL & ActiveSheet.Cells(2, 3) & " AND iperiod=" & ActiveSheet.Cells(2, 4)

        strSQL = strSQL & " AND ino_id=" & cPZ

        strSQL = strSQL & " GROUP BY LEFT(ccode,4) ORDER BY LEFT(ccode,4) "

        Else

        strSQL = "SELECT ?LEFT(ccode,4) AS km,SUM(md) AS jf,SUM(mc) AS df ?FROM GL_accvouch WHERE iyear="

        strSQL = strSQL & ActiveSheet.Cells(2, 3) & " AND iperiod=" & ActiveSheet.Cells(2, 4)

        strSQL = strSQL & " AND ino_id>=" & cMinPz

        strSQL = strSQL & " AND ino_id<=" & cMaxPz

        strSQL = strSQL & " GROUP BY LEFT(ccode,4) ORDER BY LEFT(ccode,4) "

        End If

        rs.Open strSQL, cn

        i = 4

        Do While Not rs.EOF

        ActiveSheet.Cells(i, 1) = rs("km")

        ActiveSheet.Cells(i, 3) = Format(rs("jf"), "##,##0.00")

        ActiveSheet.Cells(i, 4) = Format(rs("df"), "##,##0.00")

        i = i + 1

        rs.MoveNext

        Loop

        Set rs = Nothing

        '***************************

        '**寫入科目名稱*

        strSQL = "select ccode,ccode_name from code where iyear=" & ActiveSheet.Cells(2, 3) & " and len(ccode)=4 order by ccode"

        rs.Open strSQL, cn

        Do While Not rs.EOF

        For i = 4 To ActiveSheet.UsedRange.Rows.Count

        If ActiveSheet.Cells(i, 1) = rs("ccode") Then

        ActiveSheet.Cells(i, 2) = rs("ccode_name")

        End If

        Next i

        rs.MoveNext

        Loop

        Set rs = Nothing

        cn.Close

        r = Range("d650").End(xlUp).Row

        Sheet7.Cells(Range("d650").End(xlUp).Row + 1, 4) = "單位:江蘇省地質(zhì)調(diào)查研究院"

        r = Range("d650").End(xlUp).Row

        Cells(r, 4).HorizontalAlignment = xlRight

        End Sub

        ‘**上一頁**

        Private Sub CommandButton1_Click()

        If chTxtBx.Value > 1 Then ? '第幾冊憑證

        chTxtBx.Value = chTxtBx.Value - 1

        qspzh = Sheet1.Cells(chTxtBx.Value + 5, 2).Text

        zzpzh = Sheet1.Cells(chTxtBx.Value + 5, 3).Text

        Sheet7.Cells(2, 2) = qspzh + "-" + zzpzh

        hzb ? ? ? ? ? ? ? ? ? ?'按條件取數(shù)

        Else

        MsgBox "Hi,已經(jīng)是第一冊了"

        End If

        End Sub

        ‘**下一頁**

        Private Sub CommandButton2_Click()

        fff = Sheet1.Cells(3, 2).Value

        ddd = chTxtBx.Value

        If Val(ddd) < fff Then

        chTxtBx.Value = chTxtBx.Value + 1

        qspzh = Sheet1.Cells(chTxtBx.Value + 5, 2).Text

        zzpzh = Sheet1.Cells(chTxtBx.Value + 5, 3).Text

        Sheet7.Cells(2, 2) = qspzh + "-" + zzpzh

        hzb ? '按條件取數(shù)

        Else

        MsgBox "恭喜,已經(jīng)是最后一冊了"

        End If

        End Sub

        ‘**工作表激活,按第一本憑證參數(shù)取數(shù)**

        Private Sub Worksheet_Activate()

        chTxtBx.Value = 1

        qspzh = Sheet1.Cells(chTxtBx.Value + 5, 2).Text

        zzpzh = Sheet1.Cells(chTxtBx.Value + 5, 3).Text

        Sheet7.Cells(2, 2) = qspzh + "-" + zzpzh

        hzb ? ? ? '按條件取數(shù)

        End Sub

        4 ?方法的優(yōu)點(diǎn)與結(jié)論

        該方法在Excel2003、Excel2010和用友U8環(huán)境下測試通過,其具有下列優(yōu)點(diǎn)。

        (1)簡單易用。該辦法主要利用EXCEL的易操作性進(jìn)行處理,只要用VBA通過SQL語句將數(shù)據(jù)取到工作簿中,完成分冊表中相關(guān)設(shè)置,利用上述代碼即可完成科目匯總表輸出功能。

        (2)一數(shù)三用。分冊參數(shù)可以用于封面批量打印和包角批量打印的數(shù)據(jù)源,只要按照封面和包角的格式略加設(shè)計調(diào)整。

        (3)可移植性強(qiáng)。上述程序代碼不受用友財務(wù)系統(tǒng)本身各表結(jié)構(gòu)影響,具有通用性。其他用戶只需要修改取數(shù)程序代碼中的服務(wù)器地址和數(shù)據(jù)庫名稱,就可以使用該方法法來批量處理科目匯總表、憑證封面和憑證包角的打印。

        參考文獻(xiàn):

        [1] 衣光臻. 分旬科目匯總表在Excel中的模型構(gòu)建[J]. 商業(yè)會計,2014(11):128-129.

        [2] 羅剛軍. Excel VBA程序開發(fā)自學(xué)寶典[M]. 3版. 北京:電子工業(yè)出版社,2014.

        作者簡介:

        許洪品,男,漢族,江蘇建湖人,1971年5.26,本科,會計師,江蘇省地質(zhì)調(diào)查研究院(江蘇 南京)(210018),研究方向:會計學(xué)理論與實(shí)踐

        課題項(xiàng)目:此文為江蘇省國土資源廳課題“江蘇省地質(zhì)勘查基金項(xiàng)目資金管理系統(tǒng)開發(fā)”項(xiàng)目階段性成果之一。

        国产精品黄页免费高清在线观看| 精品国精品无码自拍自在线 | 午夜男女视频一区二区三区| 性色av色香蕉一区二区蜜桃| 狠狠人妻久久久久久综合蜜桃| 最新国产av无码专区亚洲| 加勒比日本东京热1区| 在线观看二区视频网站二区| 国产高清在线精品一区app| 欧美日韩中文国产一区发布| 亚洲一区二区欧美色妞影院 | 欧美巨大精品欧美一区二区| 国产精品麻豆成人av| 国产成人精品一区二三区孕妇| 精品人妻一区二区三区狼人| 国产a∨天天免费观看美女| 免费人成无码大片在线观看 | 国产sm调教视频在线观看| 亚洲欧洲精品成人久久曰不卡| 精品自拍偷拍一区二区三区| 亚洲av无码乱码国产麻豆| 一本色道久久99一综合| 中文人妻AV高清一区二区| 久久婷婷综合激情亚洲狠狠| 中文字幕日韩欧美一区二区三区 | 国产美女av一区二区三区| 亚洲中文字幕精品视频| 国产乱子伦农村xxxx| 久久精品国产99精品九九| 国产一区二区三区在线观看免费版| 亚无码乱人伦一区二区| 午夜dj在线观看免费视频| 国产亚洲精品性爱视频| 桃色一区一区三区蜜桃视频| 国产午夜福利在线观看红一片| 日本a在线看| 国产av一区麻豆精品久久| 亚洲无av在线中文字幕| 久久精品亚洲乱码伦伦中文| 亚洲综合精品在线观看中文字幕| 国产亚洲精品97在线视频一|