巧用VBA編程實(shí)現(xiàn)EXCEL電子表格的批量自動(dòng)打印

上傳人:huo****ian 文檔編號(hào):145990560 上傳時(shí)間:2022-08-30 格式:DOCX 頁數(shù):12 大?。?31.26KB
收藏 版權(quán)申訴 舉報(bào) 下載
巧用VBA編程實(shí)現(xiàn)EXCEL電子表格的批量自動(dòng)打印_第1頁
第1頁 / 共12頁
巧用VBA編程實(shí)現(xiàn)EXCEL電子表格的批量自動(dòng)打印_第2頁
第2頁 / 共12頁
巧用VBA編程實(shí)現(xiàn)EXCEL電子表格的批量自動(dòng)打印_第3頁
第3頁 / 共12頁

下載文檔到電腦,查找使用更方便

9.9 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《巧用VBA編程實(shí)現(xiàn)EXCEL電子表格的批量自動(dòng)打印》由會(huì)員分享,可在線閱讀,更多相關(guān)《巧用VBA編程實(shí)現(xiàn)EXCEL電子表格的批量自動(dòng)打?。?2頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、巧用VBA編程實(shí)現(xiàn)EXCEL證件的批量打印夏教榮 陳文濤(湖南省邵陽縣白倉鎮(zhèn)中學(xué) 421114)摘要 介紹了在EXCEL中如何使用VBA,通過實(shí)例論述了在EXCEL中可以通過VBA編程實(shí)現(xiàn)含有照片的電子證件或表格批量自動(dòng)打印,提高了EXCEL在實(shí)際應(yīng)用中的工作效率及節(jié)省人力資源。關(guān)鍵詞 VBA編程 自動(dòng)打印 EXCEL一VBA簡介1、什么是VBA? VBA是Visual Basic For Application的縮寫,它是以Visual Basic為發(fā)展基礎(chǔ)的語言。在Office軟件中,VBA應(yīng)用程序能夠在Word、Access、Excel等之間進(jìn)行交互式應(yīng)用,加強(qiáng)了應(yīng)用程序間的互動(dòng)。 VB

2、A是VB的應(yīng)用程序版本,可以理解為“寄生在Office辦公軟件中的VB”,可以看作是VB語言的一個(gè)子集。 VBA使Office形成了獨(dú)立的編程環(huán)境。2、VBA與Visual Basic的關(guān)系 1)、VB用于開發(fā)Windows應(yīng)用程序,其代碼最終被編譯為可執(zhí)行程序。而VBA是用于控制已有應(yīng)用程序的自動(dòng)化操作,其代碼為解釋。 2)、VB擁有獨(dú)立的開發(fā)環(huán)境,而VBA必須集成在已有的應(yīng)用程序中(Excel等)。 3)、VB開發(fā)出來的應(yīng)用程序在脫離開發(fā)環(huán)境后仍能執(zhí)行,而VBA編寫出來的程序必須在訪問集成應(yīng)用程序(Excel等)的基礎(chǔ)上進(jìn)行。 盡管有以上不同,但它們?nèi)匀环浅O嗨?。都使用相同的語言結(jié)構(gòu)。兩者

3、的程序的語法及程序流程完全一樣。二、在Excel中使用VBA1、進(jìn)入VBA的方法 下面以O(shè)ffice2010為例說明來進(jìn)入VBA的方法:功能區(qū)中有一個(gè)“開發(fā)工具”選項(xiàng)卡,在此可以訪問 Visual Basic 編輯器和其他開發(fā)人員工具。由于 Office 2010 在默認(rèn)情況下不顯示“開發(fā)工具”選項(xiàng)卡,因此必須使用以下過程啟用該選項(xiàng)卡:1) 、在“文件”選項(xiàng)卡上,選擇“選項(xiàng)”打開“Excel 選項(xiàng)”對(duì)話框。2) 、單擊該對(duì)話框左側(cè)的“自定義功能區(qū)”。3) 、在該對(duì)話框左側(cè)的“從下列位置選擇命令”下,選擇“常用命令”。4)、在該對(duì)話框右側(cè)的“自定義功能區(qū)”下,選擇“主選項(xiàng)卡”,然后選中“開發(fā)工具

4、”復(fù)選框。5) 、單擊“確定”。在 Excel 顯示“開發(fā)工具”選項(xiàng)卡之后,注意選項(xiàng)卡上“Visual Basic”、“宏”和“宏安全性”按鈕的位置。圖 1. Excel 2010 中的“開發(fā)工具”選項(xiàng)卡 啟用“開發(fā)工具”選項(xiàng)卡后,可以輕松找到“Visual Basic”和“宏”按鈕。2、安全問題單擊“宏安全性”按鈕可以指定哪些宏可以運(yùn)行并需滿足哪些條件。盡管未授權(quán)宏代碼可能會(huì)嚴(yán)重?fù)p害計(jì)算機(jī),但阻止您運(yùn)行有幫助的宏的安全條件會(huì)嚴(yán)重妨礙您的工作效率。宏安全性是一個(gè)復(fù)雜而又涉及廣泛的話題,您應(yīng)研究并了解是否應(yīng)使用 Excel 宏。在本文中,請(qǐng)注意,如果當(dāng)您打開一個(gè)包含宏的工作簿時(shí),在功能區(qū)和工作表

5、之間出現(xiàn)“安全警告: 宏已被禁用”條,則可單擊“啟用內(nèi)容”按鈕來啟用宏。此外,作為一種安全措施,您不能以默認(rèn)的 Excel 文件格式 (.xlsx) 保存宏;而必須將宏保存在具有一個(gè)特殊擴(kuò)展名 .xlsm 的文件中。 三、用VBA制作證件批量打印的實(shí)例下面通過制作一張學(xué)員培訓(xùn)券來說明VBA在Excel中如何實(shí)現(xiàn)自動(dòng)批量打印多張含有照片的培訓(xùn)券。1、準(zhǔn)備工作1) 、設(shè)計(jì)建立基本人員信息表在Excel表格中建立如下圖2基本信息資料,具體建立過程在這里不再詳述,我建立的表比較多,實(shí)際這里要用到的表格只有兩張,所以其他的表格我就沒有必要說了。圖2學(xué)員基本信息表(學(xué)員花名冊(cè)(計(jì)算機(jī)操作員)2)、設(shè)計(jì)建立

6、打印證件或報(bào)表格式見圖3圖3培訓(xùn)券格式及內(nèi)容2、使用VBA編程實(shí)現(xiàn)兩個(gè)工作表鏈接打印操作1) 、兩張表格設(shè)置完成后,回到培訓(xùn)券(計(jì)算機(jī)操作員)工作表即sheet7,點(diǎn)擊開發(fā)工具標(biāo)簽欄Visual basic,(或按ALT+F11快捷鍵),雙擊你所要打印證件的工作項(xiàng)目,即可進(jìn)入VBA編程狀態(tài)輸入代碼。如圖4所示圖4代碼窗口全部代碼如下:宏功能:把光標(biāo)處的人員信息填充到培訓(xùn)券(計(jì)算機(jī)操作員)工作表,并培訓(xùn)券(計(jì)算機(jī)操作員)用法:1.把光標(biāo)定位到需要培訓(xùn)券(計(jì)算機(jī)操作員)的人員行的單元格 2.執(zhí)行本宏。Sub subSetPringInfo()On Error Resume Next Dim oCe

7、ll1, oCell2, 定義二變量Dim cfz2, cfz3, cfz4, cfz5, cfz6, cfz7, cfz8, cfz9Dim cfz10, cfz11, cfz12, cfz13, cfz14, cfz15, cfz16, cfz17, cfz18 定義身份證取第二位數(shù)的內(nèi)存變量為cfz2,取第三位數(shù)的內(nèi)存變量為cfz3,以此類推到第十八位身份證內(nèi)存變量為cfz18.(身份證取第一位的內(nèi)存變量為oCell2,不需要重新定義)Dim FileType As String Dim iPXJH As Long 編號(hào) Dim iRow As Long 正在培訓(xùn)券(計(jì)算機(jī)操作員)人員的

8、行號(hào) Dim strSheet As String 人員信息的工作表名稱strSheet = 學(xué)員花名冊(cè)(計(jì)算機(jī)操作員) 人員基本信息在學(xué)員花名冊(cè)(計(jì)算機(jī)操作員)工作表中,此處可以修改 檢查是否在人員基本信息工作表中執(zhí)行此功能,如果是,則顯示不能在此工作表中執(zhí)行。 If ActiveSheet.Name strSheet Then 不是在人員信息工作表中則彈出對(duì)話框。 MsgBox 請(qǐng)?jiān)谌藛T基本信息工作表中執(zhí)行此功能 Exit Sub End If Do 循環(huán)開始 iRow = Selection.Row 行號(hào),從當(dāng)前選定的行開始培訓(xùn)券(計(jì)算機(jī)操作員) 讀當(dāng)前培訓(xùn)券(計(jì)算機(jī)操作員)行的左邊第一

9、單元格內(nèi)容 :序號(hào) Set oCell1 = Worksheets(strSheet).Cells(iRow, 11) 序號(hào)是數(shù)字的行需要培訓(xùn)券(計(jì)算機(jī)操作員)即所對(duì)應(yīng)培訓(xùn)券號(hào)行所在的單元格 iPXJH = Val(oCell1.Value) 培訓(xùn)券號(hào) If iPXJH = 10070893 Then 在培訓(xùn)券號(hào)內(nèi)的數(shù)字 Set oCell2 = Worksheets(培訓(xùn)券(計(jì)算機(jī)操作員)).Cells(5, 8) oCell2.Value = iPXJH 姓名 Set oCell1 = Worksheets(strSheet).Cells(iRow, 2) Set oCell2 = Wor

10、ksheets(培訓(xùn)券(計(jì)算機(jī)操作員)).Cells(6, 8) oCell2.Value = oCell1.Value 插入圖片 FileType = InputBox(輸入你的圖片的后綴名, 輸入圖片格式, jpg) Numb = oCell2.Value Sheet7.Select 改變當(dāng)前的工作表為sheet7即培訓(xùn)券(計(jì)算機(jī)操作員) With ActiveSheet .Pictures.Insert(D:pic & Numb & . & FileType).Select圖片所在的路徑為:D:pic,此路徑可以根據(jù)具體情況更改 Set Target = Worksheets(培訓(xùn)券(計(jì)

11、算機(jī)操作員)).Cells(5, 23)將圖片插入到指定的單元格中,我設(shè)置的單元格為W5單元格,可以更改為自己所需的單元格位置 End With With Selection .Top = Cells(5, 23).Top + 4 插入圖片的上方位置為W5的位置向下4個(gè)單位,數(shù)字4可以更改 .Left = Cells(5, 23).Left + 5 插入圖片的上方位置為W5的位置向下4個(gè)單位,數(shù)字4可以更改 .Width = Cells(5, 23).Width + 110插入圖片的寬度為W5單元格的寬度加110個(gè)單位的寬度為圖片的整個(gè)寬度,110可以更改 .Height = Cells(5,

12、 23).Height + 110插入圖片的高度為W5單元格的高度加110個(gè)單位的高度為圖片的整個(gè)高度,110可以更改 End With 戶籍 Set oCell1 = Worksheets(strSheet).Cells(iRow, 9) Set oCell2 = Worksheets(培訓(xùn)券(計(jì)算機(jī)操作員)).Cells(7, 6) oCell2.Value = oCell1.Value 身份證號(hào) Set oCell1 = Worksheets(strSheet).Cells(iRow, 8) Set oCell2 = Worksheets(培訓(xùn)券(計(jì)算機(jī)操作員)).Cells(9, 3)

13、指定身份證第一位數(shù)字所在的位置,以下類推。 Set cfz2 = Worksheets(培訓(xùn)券(計(jì)算機(jī)操作員)).Cells(9, 4) Set cfz3 = Worksheets(培訓(xùn)券(計(jì)算機(jī)操作員)).Cells(9, 5) Set cfz4 = Worksheets(培訓(xùn)券(計(jì)算機(jī)操作員)).Cells(9, 6) Set cfz5 = Worksheets(培訓(xùn)券(計(jì)算機(jī)操作員)).Cells(9, 7) Set cfz6 = Worksheets(培訓(xùn)券(計(jì)算機(jī)操作員)).Cells(9, 8) Set cfz7 = Worksheets(培訓(xùn)券(計(jì)算機(jī)操作員)).Cells(9,

14、 9) Set cfz8 = Worksheets(培訓(xùn)券(計(jì)算機(jī)操作員)).Cells(9, 10) Set cfz9 = Worksheets(培訓(xùn)券(計(jì)算機(jī)操作員)).Cells(9, 11) Set cfz10 = Worksheets(培訓(xùn)券(計(jì)算機(jī)操作員)).Cells(9, 12) Set cfz11 = Worksheets(培訓(xùn)券(計(jì)算機(jī)操作員)).Cells(9, 13) Set cfz12 = Worksheets(培訓(xùn)券(計(jì)算機(jī)操作員)).Cells(9, 14) Set cfz13 = Worksheets(培訓(xùn)券(計(jì)算機(jī)操作員)).Cells(9, 15) Set

15、cfz14 = Worksheets(培訓(xùn)券(計(jì)算機(jī)操作員)).Cells(9, 16) Set cfz15 = Worksheets(培訓(xùn)券(計(jì)算機(jī)操作員)).Cells(9, 17) Set cfz16 = Worksheets(培訓(xùn)券(計(jì)算機(jī)操作員)).Cells(9, 18) Set cfz17 = Worksheets(培訓(xùn)券(計(jì)算機(jī)操作員)).Cells(9, 19) Set cfz18 = Worksheets(培訓(xùn)券(計(jì)算機(jī)操作員)).Cells(9, 20) oCell2.Value = Mid(oCell1.Value), 1, 1)給身份證第一位數(shù)字賦具體的值,以此類推。

16、 cfz2.Value = Mid(oCell1.Value), 2, 1) cfz3.Value = Mid(oCell1.Value), 3, 1) cfz4.Value = Mid(oCell1.Value), 4, 1) cfz5.Value = Mid(oCell1.Value), 5, 1) cfz6.Value = Mid(oCell1.Value), 6, 1) cfz7.Value = Mid(oCell1.Value), 7, 1) cfz8.Value = Mid(oCell1.Value), 8, 1) cfz9.Value = Mid(oCell1.Value), 9

17、, 1) cfz10.Value = Mid(oCell1.Value), 10, 1) cfz11.Value = Mid(oCell1.Value), 11, 1) cfz12.Value = Mid(oCell1.Value), 12, 1) cfz13.Value = Mid(oCell1.Value), 13, 1) cfz14.Value = Mid(oCell1.Value), 14, 1) cfz15.Value = Mid(oCell1.Value), 15, 1) cfz16.Value = Mid(oCell1.Value), 16, 1) cfz17.Value = M

18、id(oCell1.Value), 17, 1) cfz18.Value = Mid(oCell1.Value), 18, 1) 工種 Set oCell1 = Worksheets(strSheet).Cells(iRow, 7) Set oCell2 = Worksheets(培訓(xùn)券(計(jì)算機(jī)操作員)).Cells(11, 11) oCell2.Value = oCell1.Value 培訓(xùn)券(計(jì)算機(jī)操作員)證件,A1:E7 為定義頁面的培訓(xùn)券(計(jì)算機(jī)操作員)范圍 Worksheets(培訓(xùn)券(計(jì)算機(jī)操作員)).Range(A1:AF25).PrintOut 清空sheet7中相片單元格中的

19、照片為了避免照片打印重復(fù) Dim x As Integer For x = 1 To Sheet7.Shapes.Count If Sheet7.Shapes(x).TopLeftCell.Address = $W$5 Then 絕對(duì)引用單元格W5是我設(shè)置的相片所在的單元格 Sheet7.Shapes(x).Delete 刪除圖片單元格的內(nèi)容 End If Next x Sheet1.Activate激活當(dāng)前的工作表為sheet1即學(xué)員花名冊(cè)(計(jì)算機(jī)操作員) 打完一個(gè)證件后,詢問是否培訓(xùn)券(計(jì)算機(jī)操作員)下一個(gè)。 If MsgBox(繼續(xù)打印下一人員?, vbDefaultButton1 +

20、vbYesNo) vbYes Then 中斷培訓(xùn)券(計(jì)算機(jī)操作員)打印 Exit Sub End If 為培訓(xùn)券(計(jì)算機(jī)操作員)下一人員做準(zhǔn)備 Set oCell1 = Worksheets(strSheet).Cells(iRow + 1, 1) oCell1.Activate Sheet1.Select 恢復(fù)當(dāng)前的工作表為sheet1即學(xué)員花名冊(cè)(計(jì)算機(jī)操作員) Else MsgBox 當(dāng)前行不是人員信息,不能打印 Exit Sub End If LoopEnd Sub2)、實(shí)驗(yàn)結(jié)果完成后按ALT+F11進(jìn)入代碼窗口,鼠標(biāo)點(diǎn)擊(或按F5)執(zhí)行宏操作會(huì)彈出宏對(duì)話框,如圖5所示點(diǎn)擊“運(yùn)行”按鈕

21、。注意:在運(yùn)行前要選擇工作表學(xué)員花名冊(cè)(計(jì)算機(jī)操作員)即sheet1,并且選擇A4單元格即序號(hào)為1的單元格,不然會(huì)出現(xiàn)提示:“請(qǐng)?jiān)谌藛T基本信息工作表中執(zhí)行此功能”,還要注意的是:在“培訓(xùn)券(計(jì)算機(jī)操作員)”工作表中,顯示比例改必須為100%,否則,打印出來的圖片不會(huì)在圖片框中。這樣我們可以按照要求打印自己所要打印的證件了。手工幾天的工作不到半天就完成了,提高了工作效率,同時(shí)也減少了很多的錯(cuò)誤。此代碼在Windows XP操作系統(tǒng)、Microsoft Office Excel 2010下編寫,并順利運(yùn)行通過。四、結(jié)束語 在Excel制作電子表格過程中,充分利用VBA這一工具,提升Excel文件的技術(shù)含量,可使電子表格自動(dòng)化功能得到增強(qiáng),使電子表格更完善,更具有靈活多樣性。執(zhí)行打印后的效果為下圖6所示圖6執(zhí)行代碼后打印的效果圖

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!