亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

使用VB實現Excel自動獲取外部數據

2019-11-18 17:37:40
字體:
來源:轉載
供稿:網友
Excel表格生成和公式設置十分強大便利,是一個強有力的信息分析與處理工具。VisualBasic是一套可視化、面向對象、事件驅動方式的結構化高級程序設計語言,正成為高效率的Windows應用程序開發工具。由于微軟的努力,VisualBasic應用程序版可作為一種通用宏語言被所有微軟可編程應用軟件共享。

  Excel面始之初帶有表格處理類軟件中功能最強的宏語言,通過單擊“工具”菜單中的“宏”,選擇宏名來調用宏過程。隨后發展至VisualBasicforapplication專用版,可制作按鈕、復選框、單選鈕等控件,賦控件以宏名,單擊控件運行宏,事件驅動方式就Click(單擊)一種。新近推出的Office97套件中的Excel97,在“工具”菜單中選擇“宏”后,就會發現增加了“VisualBasic編輯器”功能。運用這個新增功能,就完全與VisualBasic編程無異了。在菜單欄上單擊鼠標右鍵,選擇彈出式菜單中的“控件工具箱”,在“控件工具箱”工具條上,單擊待添加的控件按鈕,在工作表中將控件拖曳到所需位置和大小,單擊鼠標右鍵選中“屬性”設置控件屬性后,雙擊控件就會出現VisualBasic編輯器。選擇該控件的一個事件如Click或Change,編寫程序。在工作表中操作該控件,如鼠標單擊、鍵入字符等,則觸發相應事件,執行相應程序。

  筆者在Excel97平臺,采用VisualBasic應用程序版開發了一套“通用報表分析系統”。該系統用于擁有眾多子公司的母公司的每月財務報表合并匯總。所有子公司的統計報表如資產負債表、損益表是由FoxBase編制的財務軟件生成的dbf文件,取名為ATV001xx.dbf----xx月份資產負債表,ATV002xx.dbf----xx月份損益表等。一個子公司的所有dbf文件放在一個單獨的目錄中,如C:/T/palm1,C:/T/palm2等。母公司每月份生成的匯總報表為TTTyymm.xls(yy----年份,mm----月份),它有“資產負債表”、“損益表”等若干工作表組成。每張工作表是由所有子公司相應的dbf文件的相應項目的數據相加而成。只要將dbf文件逐一轉化到TTTyymm.xls中去,很容易利用Excel的公式設置功能生成母公司的每張匯總報表。
這套系統的關鍵在于如何將所有dbf文件轉換到同一個Excel工作簿中。直接通過“文件”菜單中的“打開”項,選擇文件類型為dBase文件(*.dbf),可將dbf文件轉換到Excel工作簿中,但這工作簿只存轉換而來的一張工作表,其他表都自動關閉了。另外,通過“工具”菜單中的“向導”,選擇“文件轉換”后,只是將一系列dbf文件轉換為一系列xls文件而已。于是采用建立ODBC數據源獲取外部數據的辦法,將dbf文件逐一轉換到一個Excel工作簿內,且用VisualBasicforApplication將轉換過程自動化。只要按一下圖1中的“生成報表”按鈕,就能完成所有dbf文件的轉換,且利用Excel公式自動計算功能完成所有報表的匯總計算。按“顯示報表”按鈕,選擇表名,可以瀏覽報表數據。

具體的方法是:
一、建立ODBC數據源
(1)打開“數據”菜單,選擇“獲取外部數據”,然后單擊“新建查詢”;
(2)在“選擇數據源”對話框中,雙擊“<新數據源>”;
(3)出現“創建新數據源”對話框,輸入數據源名稱,選擇驅動程序如MicrosoftdBaseDriver(*.dbf),單擊“連接”;
(4)在“ODBCdBase安裝”對話框中,單擊“使用當前工作目錄”前的復選框,去掉缺省(,單擊“選定目錄(s)”,選擇子公司存放dbf文件的目錄如C:/T/palm1,連按“確定”;
(5)當出現MicrosoftQuary對話框時,單擊“關閉”,退出。不要理會出現的警示信息,因為此時只需建立數據源,并不需要用MicrosoftQuery查詢數據;
(6)重復上述步驟,在(4)中改換另一家子公司的目錄,就為另一家子公司建立一個數據源。必須建立所有子公司的數據源。

二、手動獲取外部數據
(1)單擊“數據”,選取“獲取外部數據”,單擊“新建查詢”;
(2)出現“選取數據源”對話框,點中“使用查詢向導創建/編輯查詢”前的復選框,然后雙擊數據源名,如palm1;
(3)在“查詢向導——選擇列”對話框中選擇一個查詢表名,單擊>鍵,“查詢中用到的列”框內會出現表中所有列名,單擊“下一步”;
(4)出現“查詢向導——過濾數據”,單擊“下一步”;
(5)出現“查詢向導——排序順序”,單擊“下一步”;
(6)出現“查詢向導——完成”,點中“將數據返回MicrosoftExcel”前的單選鈕,單擊“完成”;
(7)出現“將外部數據返回到Excel”對話框,選中“新建工作表”,按“確定”;
(8)在建立查詢的工作簿內新建工作表,并放入轉換好的數據。這樣就將一個dbf文件轉換好了。
(9)重復上述過程,所有子公司的dbf文件轉換到同一個工作簿中。

三、使用VB實現Excel自動獲取外部數據
(1)進行手動獲取外部數據(1)步驟前,單擊“工具”菜單中的“宏”,選擇“錄制新宏”,在“宏名”的編輯框中鍵入宏名dbftoxls,按“確定”鍵;
(2)完成手動獲取外部數據(1)-(8)步驟;
(3)單擊“工具”菜單中的“宏”,選擇“停止錄制”。這樣就將獲取外部數據的過程記錄為宏。
(4)編輯dbftoxls宏,加以修改,使它作為VisualBasic模塊表中的一個子程序,并設置調用參數。
提供的程序如下:

`設置初值
Constapppath="c:/mydocuments/palmxls/"
Constmodulefile=apppath "module.xls"
ConststaticsEndIf
staticsfile=apppath staticspre s1 s2 ".xls"
IfFileLen(staticsfile)>0Then
choice=MsgBox("該年月報表已存在,是否重新生成?",vbYesNo vbExclamation vbDefaultButton1,"")
Ifchoice=idyesThen
Workbooks.OpenFileName:=staticsfile
Fori=0Tocompanynum-1
Forj=0Totablenum-1
dbfstring=dbfpre Trim(Str$(j 1)) s2
sqlstring=sqlstringfunc(dbfstring,fieldlist(),tablefieldnum(j))
Calldbftoxls(s(i,j),sqlstring)
Nextj
Nexti
ActiveWorkbook.Save
ActiveWorkbook.Close
EndIf
EndIf
ExitSub

errhandler1:
SelectCaseErr
Case53
Workbooks.OpenFileName:=modulefile
s3=s1 "年" s2 "月"
Sheets("資產負債表").Range("e4").FormulaR1C1="'" s3
ActiveWorkbook.SaveAsFileName:=staticsfile,FileFormat_
:=xlNormal,Pass
Word:="",WriteResPassword:="",ReadOnlyRecommended:=_
False,CreateBackup:=False
Fori=0Tocompanynum-1
Forj=0Totablenum-1
dbfstring=dbfpre Trim(Str$(j 1)) s2
sqlstring=sqlstringfunc(dbfstring,fieldlist(),tablefieldnum(j))
Calldbftoxls(s(i,j),sqlstring)
Nextj
Nexti
ActiveWorkbook.Save
ActiveWorkbook.Close
EndSelect
EndSub

`dbftoxls子程序
Subdbftoxls(activesheetname,sqlstring)
Sheets(activesheetname).Activate
Cells.Select
Selection.Clear
Range("a1").Select
WithActiveSheet.QueryTables.Add(Connection:=Array(Array(_
"ODBC;CollatingSequence=ASCII;DBQ=C:/T/palm1;DefaultDir=C:/T
/palm1;Deleted=1;Driver={MicrosoftdBaseDriver(*.dbf)};DriverId=533;FIL"_
),Array(_
"=dBaseIII;ImplicitCommitSync=Yes;MaxBufferSize=512;MaxScanRows=
8;PageTimeout=600;SafeTransactions=0;Statistics=0;Threads=3;Use"_
),Array("rCommitSync=Yes;")),Destination:=Range("A1"))
.Sql=Array(sqlstring)
.FieldNames=True
.RefreshStyle=xlInsertDeleteCells
.RowNumbers=False
.FillAdjacentFormulas=False
.RefreshOnFileOpen=False
.HasAutoFormat=True
.BackgroundQuery=True
.TablesOnlyFromHTML=True
.RefreshBackgroundQuery:=False
.SavePassword=True
.SaveData=True
EndWith
EndSub->


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲自拍小视频免费观看| 一区二区三区视频在线| 久久久国产视频| 日韩av大片免费看| 久久精品视频网站| 福利微拍一区二区| 欧美成在线视频| 欧美性猛交丰臀xxxxx网站| 亚洲新声在线观看| 国产啪精品视频| 国产精品亚洲激情| 综合国产在线观看| 国产a级全部精品| 欧美日韩亚洲系列| 亚洲天堂av在线免费观看| 91免费综合在线| 麻豆成人在线看| 日韩欧美亚洲范冰冰与中字| 综合av色偷偷网| 国产精品电影在线观看| 欧美一级免费看| 欧美二区在线播放| 亚洲精品视频免费在线观看| 97超级碰碰碰| 色av中文字幕一区| 亚洲综合中文字幕68页| 美日韩精品免费观看视频| 国产日韩精品入口| 成人有码在线播放| 日韩av电影手机在线| 国产成人精品999| 久久成人在线视频| 91精品国产色综合久久不卡98口| 成人免费视频在线观看超级碰| 久99九色视频在线观看| 国产盗摄xxxx视频xxx69| 欧美精品xxx| 免费91麻豆精品国产自产在线观看| 欧美成人一区二区三区电影| 日韩成人中文字幕| 欧美亚州一区二区三区| 久热国产精品视频| 欧美日韩国产精品| 亚洲综合在线做性| 欧美福利视频在线观看| 亚洲人成在线观| 国产亚洲精品成人av久久ww| 日韩欧美在线中文字幕| 一区二区欧美在线| 久久久久国产精品一区| 亚洲欧美日韩一区二区在线| 亚洲综合日韩在线| 国产精品扒开腿做| 日韩激情av在线免费观看| 国产在线a不卡| 久久伊人免费视频| 97人人模人人爽人人喊中文字| 亚洲视频999| 欧美人在线视频| 在线电影欧美日韩一区二区私密| 中文字幕亚洲一区二区三区| 欧美激情videoshd| 久久精品一偷一偷国产| 夜夜嗨av一区二区三区免费区| 亚洲www永久成人夜色| 亚洲视频在线观看视频| 欧美大尺度电影在线观看| 日韩中文字幕免费视频| 日韩av电影在线免费播放| 久久久久久久网站| 国产精品一二三视频| 91精品国产99| 久久人91精品久久久久久不卡| 日韩欧美大尺度| 一区二区三区无码高清视频| 欧美日韩国产成人在线| 在线观看国产精品淫| 国产精品99蜜臀久久不卡二区| 亚洲女性裸体视频| 亚洲人成毛片在线播放| 成人免费看黄网站| 这里只有精品在线观看| 亚洲第一区在线观看| 热久久免费国产视频| 91色视频在线观看| 久久99亚洲精品| 日韩欧美成人精品| 亚洲色图av在线| 91在线|亚洲| 亚洲人成欧美中文字幕| 亚洲欧美激情精品一区二区| 欧美黑人xxxx| 亚洲精选中文字幕| 欧美激情精品久久久久久变态| 国产一区二区三区欧美| 亚洲国产精品999| 欧美精品手机在线| 亚洲国产精品系列| 26uuu国产精品视频| 亚洲性视频网址| 欧日韩不卡在线视频| 97在线免费观看视频| 成人激情视频免费在线| 日本中文字幕成人| 国产精品久久久久久一区二区| 国产亚洲精品久久久久久牛牛| 日本aⅴ大伊香蕉精品视频| 欧美性xxxxxxx| 大量国产精品视频| 久久好看免费视频| 97超碰蝌蚪网人人做人人爽| 日韩综合中文字幕| 亚洲男人天堂视频| 国产经典一区二区| 成人羞羞国产免费| 精品国产乱码久久久久久婷婷| 国产精品视频区| 中文字幕一区日韩电影| 国产在线视频91| 成人欧美一区二区三区黑人孕妇| 91国产中文字幕| 亚洲欧美精品中文字幕在线| 亚洲欧洲一区二区三区在线观看| 91日本在线观看| 国产精品视频一区二区高潮| 国产91在线播放精品91| 91福利视频网| 最新日韩中文字幕| 精品久久久香蕉免费精品视频| 欧美性xxxx极品hd欧美风情| 午夜免费在线观看精品视频| 97在线视频免费| 国产成人免费av电影| 在线精品国产欧美| 国产精品久久久久av免费| 亚洲综合av影视| 欧美理论电影在线观看| 日韩精品免费在线观看| 青青在线视频一区二区三区| 欧美大尺度激情区在线播放| 欧美在线亚洲一区| 欧美在线免费观看| 免费91在线视频| 亚洲视频日韩精品| 91探花福利精品国产自产在线| 久久精品福利视频| 在线成人中文字幕| 中文字幕成人在线| 亚洲网站在线观看| 欧美视频在线观看免费网址| 尤物九九久久国产精品的特点| 成人免费自拍视频| 亚洲第一国产精品| 亚洲黄色av网站| 91精品视频一区| 国产精品欧美日韩久久| 欧美亚洲第一页| 色综合天天狠天天透天天伊人| 综合网日日天干夜夜久久| 欧美在线不卡区| 欧美高清在线视频观看不卡| 久久男人的天堂| 国产中文字幕日韩| 久久久久日韩精品久久久男男|