使用VB實(shí)現(xiàn)Excel自動(dòng)獲取外部數(shù)據(jù)
Excel表格生成和公式設(shè)置十分強(qiáng)大便利,是一個(gè)強(qiáng)有力的信息分析與處理工具。Visual Basic是一套可視化、面向?qū)ο蟆⑹录?qū)動(dòng)方式的結(jié)構(gòu)化高級(jí)程序設(shè)計(jì)語(yǔ)言,正成為高效率的Windows應(yīng)用程序開(kāi)發(fā)工具。由于微軟的努力,Visual Basic應(yīng)用程序版可作為一種通用宏語(yǔ)言被所有微軟可編程應(yīng)用軟件共享。
Excel面始之初帶有表格處理類(lèi)軟件中功能最強(qiáng)的宏語(yǔ)言,通過(guò)單擊“工具”菜單中的“宏”,選擇宏名來(lái)調(diào)用宏過(guò)程。隨后發(fā)展至Visual Basic for Application專(zhuān)用版,可制作按鈕、復(fù)選框、單選鈕等控件,賦控件以宏名,單擊控件運(yùn)行宏,事件驅(qū)動(dòng)方式就Click(單擊)一種。新近推出的Office97套件中的Excel97,在“工具”菜單中選擇“宏”后,就會(huì)發(fā)現(xiàn)增加了“Visual Basic編輯器”功能。運(yùn)用這個(gè)新增功能,就完全與Visual Basic編程無(wú)異了。在菜單欄上單擊鼠標(biāo)右鍵,選擇彈出式菜單中的“控件工具箱”,在“控件工具箱”工具條上,單擊待添加的控件按鈕,在工作表中將控件拖曳到所需位置和大小,單擊鼠標(biāo)右鍵選中“屬性”設(shè)置控件屬性后,雙擊控件就會(huì)出現(xiàn)Visual Basic編輯器。選擇該控件的一個(gè)事件如Click或Change,編寫(xiě)程序。在工作表中操作該控件,如鼠標(biāo)單擊、鍵入字符等,則觸發(fā)相應(yīng)事件,執(zhí)行相應(yīng)程序。
筆者在Excel97平臺(tái),采用Visual Basic應(yīng)用程序版開(kāi)發(fā)了一套“通用報(bào)表分析系統(tǒng)”(界面如圖1)。該系統(tǒng)用于擁有眾多子公司的母公司的每月財(cái)務(wù)報(bào)表合并匯總。所有子公司的統(tǒng)計(jì)報(bào)表如資產(chǎn)負(fù)債表、損益表是由FoxBase編制的財(cái)務(wù)軟件生成的dbf文件,取名為ATV001xx.dbf----xx月份資產(chǎn)負(fù)債表,ATV002xx.dbf----xx月份損益表等。一個(gè)子公司的所有dbf文件放在一個(gè)單獨(dú)的目錄中,如C:\T\palm1,C:\T\palm2等。母公司每月份生成的匯總報(bào)表為T(mén)TTyymm.xls(yy----年份,mm----月份),它有“資產(chǎn)負(fù)債表”、“損益表”等若干工作表組成。每張工作表是由所有子公司相應(yīng)的dbf文件的相應(yīng)項(xiàng)目的數(shù)據(jù)相加而成。只要將dbf文件逐一轉(zhuǎn)化到TTTyymm.xls中去,很容易利用Excel的公式設(shè)置功能生成母公司的每張匯總報(bào)表。
這套系統(tǒng)的關(guān)鍵在于如何將所有dbf文件轉(zhuǎn)換到同一個(gè)Excel工作簿中。直接通過(guò)“文件”菜單中的“打開(kāi)”項(xiàng), 選擇文件類(lèi)型為dBase文件(*.dbf), 可將dbf文件轉(zhuǎn)換到Excel工作簿中,但這工作簿只存轉(zhuǎn)換而來(lái)的一張工作表,其他表都自動(dòng)關(guān)閉了。另外,通過(guò)“工具”菜單中的“向?qū)А保x擇“文件轉(zhuǎn)換”后, 只是將一系列dbf文件轉(zhuǎn)換為一系列xls文件而已。于是采用建立ODBC數(shù)據(jù)源獲取外部數(shù)據(jù)的辦法, 將dbf文件逐一轉(zhuǎn)換到一個(gè)Excel工作簿內(nèi), 且用Visual Basic for Application將轉(zhuǎn)換過(guò)程自動(dòng)化。只要按一下圖1中的“生成報(bào)表”按鈕, 就能完成所有dbf 文件的轉(zhuǎn)換, 且利用Excel公式自動(dòng)計(jì)算功能完成所有報(bào)表的匯總計(jì)算。按“顯示報(bào)表”按鈕,選擇表名,可以瀏覽報(bào)表數(shù)據(jù)。
相關(guān)推薦:2011年上半年計(jì)算機(jī)等級(jí)考試報(bào)名時(shí)間匯總
2011計(jì)算機(jī)等級(jí)考試二級(jí)VB考點(diǎn)及習(xí)題匯總
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |