国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

利用VBA編程提高報(bào)表制作效率

2016-11-19 05:22:02陸錦鶴
關(guān)鍵詞:數(shù)據(jù)表原始數(shù)據(jù)報(bào)表

陸錦鶴

摘 要:Excel電子表格軟件是應(yīng)用最廣泛的辦公軟件之一,它可以進(jìn)行各種數(shù)據(jù)的處理、統(tǒng)計(jì)分析和輔助決策操作,廣泛地應(yīng)用于管理、統(tǒng)計(jì)財(cái)經(jīng)等眾多領(lǐng)域。Excel的強(qiáng)大優(yōu)勢(shì)還在于它支持VBA編程。VBA是Visual Basic For Application的簡(jiǎn)稱,使用它可以達(dá)成執(zhí)行特定功能或是重復(fù)性高的操作,從而大大提高使用者的工作效率。本文以筆者本部門實(shí)際需求為例,描述如何使用Excel中的VBA編程功能提高報(bào)表的制作效率,實(shí)現(xiàn)辦公自動(dòng)化。

關(guān)鍵詞:VBA編程;辦公自動(dòng)化

中圖分類號(hào): TP31 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1673-1069(2016)12-152-2

1 報(bào)表制作流程

①制作報(bào)表,需要從公司SAP系統(tǒng)中導(dǎo)出原始數(shù)據(jù)表;

②按照部門的需求,向原始數(shù)據(jù)表中加入四列新的字段,并調(diào)整原始數(shù)據(jù)表的數(shù)據(jù)格式,形成新的數(shù)據(jù)表;

③使用新數(shù)據(jù)表中的數(shù)據(jù)形成數(shù)據(jù)透視表,供經(jīng)理使用。

2 報(bào)表制作方法

①打開原始數(shù)據(jù)表的Excel文件,按Alt+F11,打開Excel VBA編輯器;

②在Excel VBA編輯器中雙擊左上窗口中“Microsoft Excel對(duì)象”下的“ThisWorkbook”,在右側(cè)的空白編輯區(qū)內(nèi)輸入如下代碼:

Sub 建立報(bào)表()

Dim sh As Worksheet ‘ 定義工作表名稱

Set sh = Worksheets(ActiveWorkbook.Sheets(1).Name)

Dim MyRow1, MyRow2, flag As Integer ‘ 定義三個(gè)標(biāo)識(shí)符,供轉(zhuǎn)換格式時(shí)使用

Dim X As String ‘ 定義字符型變量,用于存儲(chǔ)轉(zhuǎn)換格式時(shí)的字符串

flag = 2 ‘ 為標(biāo)識(shí)符賦值

sh.Cells(1, 3) = "費(fèi)用類型" ‘ 向原始數(shù)據(jù)表中添加四列新內(nèi)容

sh.Cells(1, 4) = "成本中心"

sh.Cells(1, 5) = "費(fèi)用類型"

sh.Cells(1, 6) = "車間號(hào)"

For MyRow1 = 2 To ActiveSheet.UsedRange.Rows.Count ‘ 依照條件轉(zhuǎn)換格式

X = sh.Cells(MyRow1, 1)

If Left(X, 1) = "*" Then

For MyRow2 = MyRow1 To flag Step -1

sh.Cells(MyRow2, 3) = sh.Cells(MyRow1, 1)

Next MyRow2

flag = MyRow1 + 1

End If

sh.Cells(MyRow1, 4) = Mid(sh.Cells(MyRow1, 1), 3, 7)

Next MyRow1

MyRow2 = ActiveSheet.UsedRange.Rows.Count ‘ 取表中總記錄數(shù)

For MyRow1 = MyRow2 To 2 Step -1 ‘ 按部門訂制的需求根據(jù)條件添加數(shù)據(jù)類型

If Left(sh.Cells(MyRow1, 1), 5) = "72" And Right(Left(sh.Cells(MyRow1, 1), 9), 2) = "00" Then Rows(MyRow1).Delete ‘ 按條件刪除表中的記錄

If Left(sh.Cells(MyRow1, 1), 1) = "*" Then Rows(MyRow1).Delete

依照條件向新表中添加數(shù)據(jù)

If sh.Cells(MyRow1, 3) = "*4107101 Shift & Over. Allo" Then sh.Cells(MyRow1, 5) = "personnel expense"

If sh.Cells(MyRow1, 3) = "*4207661 Stamps" Then sh.Cells(MyRow1, 5) = "other expense"

If sh.Cells(MyRow1, 3) = "*4207775 Low Value Goods" Then sh.Cells(MyRow1, 5) = "other expense"

If sh.Cells(MyRow1, 3) = "*5147420 Entertainment" Then sh.Cells(MyRow1, 5) = "OC internal allocation"

If sh.Cells(MyRow1, 3) = "*4207780 Regular Depreciati" Then sh.Cells(MyRow1, 5) = "depreciation"

If sh.Cells(MyRow1, 3) = "*8802391 SE alloc. to OC" Then sh.Cells(MyRow1, 5) = "OE"

依照條件向新表中添加數(shù)據(jù)

If sh.Cells(MyRow1, 4) = "722201" Then sh.Cells(MyRow1, 6) = "OC-N2201"

If sh.Cells(MyRow1, 4) = "722202" Then sh.Cells(MyRow1, 6) = "OC-N2202"

If sh.Cells(MyRow1, 4) = "722203" Then sh.Cells(MyRow1, 6) = "OC-N2203"

If sh.Cells(MyRow1, 4) = "722204" Then sh.Cells(MyRow1, 6) = "OC-N2204"

Next MyRow1

Dim DataRng As Range ' 定義一個(gè)數(shù)據(jù)范圍,用來儲(chǔ)存生成數(shù)據(jù)透視表的數(shù)據(jù)

Dim MyPivot As Worksheet ' 定義一個(gè)工作表,存放數(shù)據(jù)透視表"

Dim MyPivotTable As PivotTable ' 定義一個(gè)數(shù)據(jù)透視表,用來儲(chǔ)存數(shù)據(jù)透視表對(duì)象

Dim MyTable As Worksheet ' 定義一個(gè)工作表,做為匯總表

Dim sh1 As Worksheet ' 定義工作表變量,刪除數(shù)據(jù)透視表時(shí)使用

Set DataRng = Range("Sheet1!A1:F" & ActiveSheet.UsedRange.Rows.Count) ' 確定生成數(shù)據(jù)透視表的數(shù)據(jù)

Set MyPivot = Sheets.Add ' 新建一個(gè)工作表,用來存放數(shù)據(jù)透視表

Set MyPivotTable = MyPivot.PivotTableWizard(SourceType:=xlDatabase, SourceData:=DataRng) ‘ 利用PivotTableWizard方法生成一個(gè)空的數(shù)據(jù)透視表

MyPivotTable.AddFields RowFields:="費(fèi)用類型", ColumnFields:="車間號(hào)" ' 添加數(shù)據(jù)透視表行字段和列字段

MyPivotTable.AddDataField MyPivotTable.PivotFields("Act. Costs"), Function:=xlSum ' 添加數(shù)據(jù)透視表數(shù)據(jù)字段和匯總方法

MyPivotTable.PivotFields("車間號(hào)").Subtotals(1) = False' 取消透視表的分類匯總功能

輸入上述內(nèi)容后,按F5鍵,執(zhí)行該程序,自動(dòng)生成新的報(bào)表??蓪⑸鲜鰞?nèi)容保存為宏,以便今后再次使用。

3 綜述

如果由人工來逐條數(shù)據(jù)進(jìn)行處理,由于大量的時(shí)間用來執(zhí)行重復(fù)的操作,因此制作新的報(bào)表至少需要一個(gè)小時(shí)的時(shí)間,而且容易出現(xiàn)錯(cuò)誤。在使用該VBA程序自動(dòng)生成報(bào)表后,生成新的報(bào)表可以在不到一分鐘的時(shí)間內(nèi)完成。不僅節(jié)約了大量的時(shí)間,大大提升了生成報(bào)表的效率,而且減少了在制作報(bào)表中出現(xiàn)錯(cuò)誤的概率??梢娙绻写罅繑?shù)據(jù)需要執(zhí)行重復(fù)操作的時(shí)候,VBA編程是提升工作效率的很好方法。

猜你喜歡
數(shù)據(jù)表原始數(shù)據(jù)報(bào)表
GOLDEN OPPORTUNITY FOR CHINA-INDONESIA COOPERATION
受特定變化趨勢(shì)限制的傳感器數(shù)據(jù)處理方法研究
湖北省新冠肺炎疫情數(shù)據(jù)表
黨員生活(2020年2期)2020-04-17 09:56:30
基于列控工程數(shù)據(jù)表建立線路拓?fù)潢P(guān)系的研究
LabWindows/CVI中Excel報(bào)表技術(shù)研究
從三大報(bào)表讀懂養(yǎng)豬人的成績(jī)單
全新Mentor DRS360 平臺(tái)借助集中式原始數(shù)據(jù)融合及直接實(shí)時(shí)傳感技術(shù)實(shí)現(xiàn)5 級(jí)自動(dòng)駕駛
汽車零部件(2017年4期)2017-07-12 17:05:53
圖表
基于VSL的動(dòng)態(tài)數(shù)據(jù)表應(yīng)用研究
河南科技(2014年24期)2014-02-27 14:19:25
世界經(jīng)濟(jì)趨勢(shì)
哈密市| 图木舒克市| 杭锦后旗| 贺州市| 三台县| 永春县| 集安市| 故城县| 亚东县| 固镇县| 噶尔县| 阜平县| 丰顺县| 鸡泽县| 娄底市| 库尔勒市| 洮南市| 武穴市| 东方市| 三河市| 忻州市| 南投市| 深水埗区| 岑巩县| 武冈市| 铜川市| 金川县| 武隆县| 鱼台县| 沅江市| 郧西县| 洪洞县| 东安县| 尉犁县| 湖北省| 拜城县| 来凤县| 伽师县| 阿拉善右旗| 大冶市| 临澧县|