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

?

批量打印學(xué)生體質(zhì)健康登記卡的VBA

2018-06-30 04:56:42范拽拽
卷宗 2018年18期
關(guān)鍵詞:辦公自動(dòng)化

摘 要:論述了利用EXCEL的VBA編程功能,把相當(dāng)大的數(shù)據(jù)處理任務(wù)交給程序自動(dòng)進(jìn)行處理, 實(shí)現(xiàn)了表格的自動(dòng)批量復(fù)制打印,實(shí)現(xiàn)了辦公自動(dòng)化,提高了EXCEL在實(shí)際應(yīng)用中的工作效率及節(jié)省人力資源。

關(guān)鍵詞:EXCEL VBA ;批量打印;登記卡;辦公自動(dòng)化

1 問題的提出

在體育教學(xué)過程中,體育教師每年都要對(duì)學(xué)生進(jìn)行體質(zhì)健康測試,還要填《國家學(xué)生體質(zhì)健康標(biāo)準(zhǔn)》登記卡上報(bào)數(shù)據(jù)。比如要實(shí)現(xiàn)如下一項(xiàng)任務(wù),見圖1、圖2和圖3。

要求把圖1中的數(shù)據(jù)按照圖2、圖3 《國家學(xué)生體質(zhì)健康標(biāo)準(zhǔn)》登記卡的格式填寫完整并打印輸出。按照常規(guī)的方法,把第一個(gè)人的信息依次復(fù)制到要打印的表格中,然后打印,再復(fù)制下一個(gè)人員,依此類推。如果人很多的話,這項(xiàng)工作很是繁瑣,也容易出錯(cuò)。因此,我寫了一個(gè)VBA程序,讓工作自動(dòng)進(jìn)行。

1.1什么是VBA?

在Office軟件中,VBA應(yīng)用程序能夠在Word、Excel等之間進(jìn)行交互式應(yīng)用,加強(qiáng)了應(yīng)用程序間的互動(dòng)。

1.2實(shí)現(xiàn)方法

為了描述方便,筆者將含有數(shù)據(jù)的表格(圖1)命名為數(shù)據(jù)表,其工作表標(biāo)簽為“成績統(tǒng)計(jì)”,將要打印的《國家學(xué)生體質(zhì)健康標(biāo)準(zhǔn)》登記卡(圖1、圖2)命名為“1-2年級(jí)打印”、“3-4年級(jí)打印”、“5-6年級(jí)打印”,其工作表標(biāo)簽相應(yīng)命名。

2 系統(tǒng)設(shè)計(jì)

2.1程序設(shè)計(jì)的主要思路

假設(shè)此工作是用手工操作的話,比如從第2行記錄打印到第10行記錄,那么操作過程應(yīng)該是這樣的:把數(shù)據(jù)表中的D4單元格中的“諸葛亮”復(fù)制到登記表中的C4單元格中,把數(shù)據(jù)表中的E4復(fù)制到登記表中的I4,依此類推,直至把“諸葛亮” 的一分鐘跳繩的成績復(fù)制到登記表中對(duì)應(yīng)的D16單元格中,數(shù)據(jù)復(fù)制完成后,打印輸出,這樣就完成了第2行記錄的操作,接下來復(fù)制“夏侯惇”的數(shù)據(jù)到登記中,然后再打印。如此一直到第10 行記錄“任盈盈”。根據(jù)這個(gè)工作流程,如果用程序來實(shí)現(xiàn)的話,可以通過循環(huán)的方式復(fù)制數(shù)據(jù)表中的數(shù)據(jù)到登記表中對(duì)應(yīng)的位置,再用循環(huán)的方式處理多個(gè)不同人員的信息。

2.2程序的功能

根據(jù)工作中的需要,程序應(yīng)該可以實(shí)現(xiàn)多種批量打印的形式,主要包括以下幾種:

(1) 連續(xù)的記錄,如從第5行到第50行。

(2) 不連續(xù)的記錄,如第5、10、15、20行這四條記錄。

(3) 根據(jù)學(xué)籍號(hào)打印某一條記錄。

(4) 分年級(jí)打印記錄。

(5) 分班級(jí)打印記錄。

上述幾種形式在某些時(shí)候可以達(dá)到相同的目的,如第(2) 種形式中,選擇連續(xù)的記錄就和第(1)種形式相同,選擇單個(gè)的記錄就與第(3)種形式相同;第(4) 種形式和第(5) 種形式結(jié)構(gòu)相同。

2.3程序的關(guān)鍵技術(shù)

第一、由程序的設(shè)計(jì)思路可知,程序運(yùn)行時(shí)用戶就要告訴程序處理的是哪些數(shù)據(jù)。由于各年級(jí)的表格不盡相同,就需要分別調(diào)用對(duì)應(yīng)的表格模板。

第二、由于要處理不同人員的數(shù)據(jù),以及提取相應(yīng)信息,所以要用到兩個(gè)循環(huán)。處理不同人員的數(shù)據(jù)時(shí),調(diào)用對(duì)應(yīng)的學(xué)籍號(hào)就可以了;而提取相應(yīng)的信息,要在各自的模板中進(jìn)行,再由程序調(diào)用。

第三、程序要能與用戶交互。可以由用戶選擇打印或不打印哪些數(shù)據(jù)。

第四、由于程序要批量打印,也讓用戶心中有數(shù),因此,已經(jīng)打印過的數(shù)據(jù)要做出記號(hào),避免重復(fù)。

3 用戶界面的設(shè)計(jì)和代碼的編寫

在新的excel工作簿里建6個(gè)工作表,標(biāo)簽名稱分別為“成績統(tǒng)計(jì)”、“評(píng)分標(biāo)準(zhǔn)”、“測試成績”、“1-2年級(jí)打印”、“3-4年級(jí)打印”、“5-6年級(jí)打印”。前面3個(gè)工作表的內(nèi)容網(wǎng)上有,這兒就不介紹了。后面3個(gè)工作表,分別把各自對(duì)應(yīng)的模板復(fù)制過來就好,分別在右上角添加一個(gè)命令按鈕,其顯示為“打印登記卡”作為用戶召喚打印頁面的選擇。在Excel中按ALT+F11,可以打開VBE界面,點(diǎn)擊“插入”——“用戶窗體”,就插入了一個(gè)窗體,為了在程序中方便地引用它,可以把它的名稱改為U12print,用同樣的方法再添加兩個(gè)窗體,分別命名為U34print、U56print如圖4。

在窗體的上部放一個(gè)文本框,作為輸入口,一個(gè)命令按鈕其顯示為“查詢”。相關(guān)的代碼如下:

Private Sub cmd查詢_Click()

Dim SQL$, i&

If Trim(Text1.Text) = “” Then Exit Sub

Check1.Value = False: Check2.Value = False: Check3.Value = False

SQL = "Select * from [成績統(tǒng)計(jì)$A4:AM" & myR & "] where f3 like '%" & UCase(Trim(Text1.Text)) & "%'"

List1.Clear

If rs.State <> 0 Then rs.Close

rs.Open SQL, cnn, 1, 3

If rs.RecordCount > 0 Then

For i = 0 To rs.RecordCount - 1

If rs.Fields(2) <> "" Then List1.AddItem rs.Fields(2) '學(xué)籍號(hào)

rs.MoveNext

Next

End If

End Sub

在窗體的中部放一個(gè)列表框控件list1,以便顯示學(xué)生學(xué)籍號(hào)。右邊兩個(gè)多選按鈕其顯示為“已打印 登記卡”、“未打印 登記卡”,下邊一個(gè)多選按鈕“選中全部記錄”。右邊兩個(gè)顯示為“打印”和“關(guān)閉”的命令按鈕。相關(guān)的代碼如下:

以上代碼是打印1—2年級(jí)的,其他年級(jí)的與此相似。

值得說明的是,列表框控件的MultiSelect屬性應(yīng)該設(shè)置為2-fmMultiSelectExtended,這樣,用戶可以利用Shift和Ctrl鍵對(duì)列表框中的記錄進(jìn)行多項(xiàng)選擇。當(dāng)用戶選擇“未打印 登記卡”時(shí)列表框中出現(xiàn)所有還未打印的列表選項(xiàng),用戶可以自由選擇打印。

要打印的數(shù)據(jù)源要從圖1往圖2圖3的對(duì)應(yīng)位置引用。如要打印圖2任盈盈的資料,這樣引用:在C4單元格里輸入“=IF($M$4="","",INDEX(成績統(tǒng)計(jì)!$A:$AL,MATCH($M$4,成績統(tǒng)計(jì)!$C:$C,0),4))”其他引用的數(shù)據(jù)與此相似就不多介紹了。最后,新建一個(gè)模塊1,把顯示為“打印登記卡”的命令按鈕與窗體聯(lián)系起來,代碼如下:

4 程序的測試和運(yùn)行

用戶在各頁選擇“打印登記卡”時(shí)分別召喚對(duì)應(yīng)的窗體,套用對(duì)應(yīng)模板打印對(duì)應(yīng)數(shù)據(jù)。如圖4、圖5、圖6。

用戶在窗體選擇“未打印 登記卡”時(shí),列表框中列出當(dāng)前未被打印的數(shù)據(jù),選擇“選中全部記錄”時(shí),再按“打印”就可以全部打印。

5 結(jié)語

經(jīng)過試驗(yàn),程序可以正常運(yùn)行并實(shí)現(xiàn)系統(tǒng)設(shè)計(jì)中的功能。由此看出,在Excel中,VBA提供了廣大的可自由擴(kuò)展的空間,可以用VBA來編制適合自己專用的程序,大大減輕工作量,更好地利用計(jì)算機(jī)為我們服務(wù)。

參考文獻(xiàn)

[1]崔曉宏.用VBA實(shí)現(xiàn)批量復(fù)制和打印任務(wù)[J].電腦編程技巧與維護(hù),2010(21).86-89.

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

[3]shywkb.2014學(xué)生體質(zhì)健康測試計(jì)算模板(中、小學(xué)).Excelhome論壇[M].北京:人民郵電出版社,2012.

作者簡介

范拽拽(1980-),男,漢 山西省洪洞縣,大專,漢語言文學(xué)。

猜你喜歡
辦公自動(dòng)化
淺談辦公自動(dòng)化系統(tǒng)的設(shè)計(jì)與應(yīng)用
活力(2019年21期)2019-04-01 12:17:06
辦公自動(dòng)化中的計(jì)算機(jī)應(yīng)用
辦公自動(dòng)化系統(tǒng)軟件教學(xué)探索
辦公室自動(dòng)化、辦公自動(dòng)化與OA
琼结县| 介休市| 济南市| 会理县| 连江县| 民乐县| 察雅县| 珲春市| 积石山| 上栗县| 常宁市| 阳春市| 丹巴县| 门头沟区| 静安区| 诸暨市| 方山县| 垦利县| 宜丰县| 新建县| 莆田市| 牡丹江市| 临江市| 军事| 南丹县| 壶关县| 什邡市| 邳州市| 隆化县| 剑川县| 林口县| 禄丰县| 临汾市| 莱阳市| 开远市| 辽阳县| 许昌县| 茌平县| 铜鼓县| 时尚| 道孚县|