• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      VB編程控制多個excel文件的操作處理

      2014-04-29 00:00:00金鵬劉潘
      計算機光盤軟件與應(yīng)用 2014年22期

      摘 要:本文通過VB編寫程序?qū)ν晃募A中多個Excel中的大量數(shù)據(jù)同時處理,提高數(shù)據(jù)處理的準確性以及工作效率。

      關(guān)鍵詞:多文件處理;VB編程

      中圖分類號:TP273.5

      在程序開發(fā)語言中,VisualBasic是現(xiàn)在最簡單、最容易的語言。在工程數(shù)據(jù)處理中會出現(xiàn)同時從多文件中提取部分數(shù)據(jù)到同一文件中。人工手動的方法會造成時間及資源的浪費并影響數(shù)據(jù)提取的準確。利用VB程序?qū)Χ鄠€Excel進行同時處理,充分發(fā)揮利用VB編程的快捷和計算機處理的準確及高效率。

      1 設(shè)計思路及相關(guān)程序代碼

      基本思路為:(1)設(shè)計程序界面;(2)人工輸入操作基本信息;(3)生成相應(yīng)文件;(4)在所有源文件中查找相應(yīng)數(shù)據(jù)行列;(5)進行數(shù)據(jù)處理并退出保存文件。

      連接VB語言與Excel之間的操作及代碼:(1)引用Excel類型庫:VB6.0下拉菜單“工程”選擇“引用”,選中“Microsoft Excel 12.0 Object Library”;(2)定義excel程序Dim S As Excel.Application,工作簿Dim S As Excel.Workbook,工作表Dim S As Excel.Worksheet;(3)創(chuàng)建對象Set S=CreateObject(\"Excel.Application\"),工作簿Set SA=xl.Workbooks.Add,工作表Set SQ=SA.Worksheets(\"sheet1\");(4)單元格賦值:xlS.Cells(x,y)=值;(5)打開文件Set q=dk.Workbooks.Open(“路徑/文件名”),保存xlB.Save,退出xlA.Quit。

      2 實例應(yīng)用

      2.1 數(shù)據(jù)背景

      筆者需要從39個包含50多行數(shù)據(jù)的Excel文件中各提取4行數(shù)據(jù),匯合到一個Excel中,并在最終文件中可以直觀的看出數(shù)據(jù)的來源以及符合相應(yīng)的排序。

      2.2 程序設(shè)計

      界面設(shè)計如圖1。

      圖1

      2.3 程序源代碼

      (僅寫出主要代碼)

      Dim xlApp As Excel.Application

      Dim xlBook As Excel.Workbook

      Dim xlSheet As Excel.Worksheet

      Dim dkApp(50) As Excel.Application

      Dim dkBook(50) As Excel.Workbook

      Dim dkSheet(50) As Excel.Worksheet

      Dim a As String,d As String,g(50) As String,h As String,i(50) As String,j As String,k As String,l(10) As String

      Dim b As Integer, c As Integer, e As Integer,f As Integer, m As Integer, n As Integer,o As Integer, p As Integer,PD As String‘源文件數(shù)量小于50個,此處通過定義變量組的方式定義Excel對象。

      Dim a As String,……,d As String ‘基本變量的聲明與定義

      Private Sub Form_Load()

      Label1.FontSize=15;Label1.Caption=\"文件相關(guān)情況\";……,Command1.Caption=\"生成文件\"

      ……

      Text3.Text=\"未輸入\"

      Text3.FontSize=10

      End Sub ‘在窗體初始化過程中設(shè)置各控件的基本屬性

      Private Sub command4_click() ‘點擊按鈕“點擊輸入文件名”

      Text1.Text=\"\"

      a=InputBox(\"請輸入文件所在位置\",\"文件位置\",\"\") ‘手動輸入源文件位置

      h=InputBox(\"存檔文件名\",\"存檔\",\"\")

      j=a \"\\" h \".xlsx\"

      Text3.Text=\"文件位置為\" a \",存檔文件為\" j

      k=Text1.Text

      d=InputBox(\"請輸入文件數(shù)量\",\"文件數(shù)量\",\"\")’判斷是否改變文件名后輸入源文件數(shù)量

      e=Val(d)

      For f=1 To e

      g(f)=InputBox(\"請輸入要打開的第\" Str(f) \"個文件名\", \"文件\", \"\")

      i(f)=a \"\\" g(f) \".xlsx\"

      Text1.Text=Text1.Text \",\" \"文件\" g(f) \"已命名\"

      Next f ‘逐次輸入源文件名

      End Sub

      Private Sub Command1_Click() ‘點擊按鈕“生成文件”

      n=1

      Set xlApp=CreateObject(\"Excel.Application\");xlApp.Caption=h;xlApp.Visible=True,Set xlBook=xlApp.Workbooks.Add;Set xlSheet=xlBook.Worksheets(\"sheet1\");xlSheet.Activate ‘?dāng)?shù)據(jù)最終保存的文件的建立及屬性設(shè)置

      xlSheet.Cells(1,1)=\"文件號\";xlSheet.Cells(1,2)=\"node\";……;xlSheet.Cells(1,7)=\"F\" ‘利用cells()屬性賦予目標文件第一行的表格內(nèi)容

      xlApp.WindowState=xlMinimized ‘生成的excel文件最小化

      Text1.Text=k

      For f=1 To e

      Set dkApp(f)=CreateObject(\"Excel.Application\")

      dkApp(f).Visible=True

      Set dkBook(f)=dkApp(f).Workbooks.Open(i(f))

      Set dkSheet(f)=dkBook(f).Worksheets(\"sheet1\")

      dkSheet(f).Activate

      dkApp(f).WindowState=xlMinimized

      Text1.Text=Text1.Text \",\" \"文件\" g(f) \"建立\"

      Next f ‘逐次打開源文件

      End Sub

      Private Sub Command2_Click() ‘點擊按鈕“調(diào)用數(shù)據(jù)”

      m=0;l(0)=\"1\"

      Do Until l(m)=\"\"

      m=m+1

      l(m)=InputBox(\"第\" Str(m) \"節(jié)點行\(zhòng)",\"節(jié)點行\(zhòng)",\"\")

      Loop

      For f=1 To m-1

      For o=1 To e

      n=n+1

      xlSheet.Cells(n,1)=g(o)

      For p=2 To 7

      xlSheet.Cells(n,p)=dkSheet(o).Cells(Val(l(f)),p-1)

      Next p

      Next o

      Next f ‘?dāng)?shù)據(jù)調(diào)用

      End Sub

      Private Sub Command3_Click()

      Text3.Enabled=True

      xlBook.SaveAs (j)

      xlApp.Quit

      For f=1 To e

      dkApp(f).Quit

      Next f

      End Sub

      2.4 程序運行及結(jié)果

      運行結(jié)束后結(jié)果文件如圖2,經(jīng)核對未發(fā)現(xiàn)問題,其他文件進行操作也同樣準確有效。

      圖2

      3 結(jié)束語

      通過VB編程對多個Excel進行操作,實際工作會有要從上百文件中上萬數(shù)據(jù)中將極少部分數(shù)據(jù)信息提取出來,充分利用了計算機處理數(shù)據(jù)的高效,并且該方法只需簡單操作就能利用在短時間解決數(shù)據(jù)處理問題。但需要進一步探究的是對于文件數(shù)量不確定時Excel變量數(shù)量初始設(shè)置,如何既不占內(nèi)存空間又能不用提前預(yù)設(shè)一個很大的值。

      參考文獻:

      [1]周建麗,張廷萍,周翔.Visual Basic語言程序設(shè)計教程[M].北京:中國水利水電出版社,2009.

      [2]金鵬,戴顯著.編寫Vb程序控制Excel處理數(shù)值模擬的數(shù)據(jù)[J].電子制作,2014(08下):55-56.

      作者簡介:金鵬(1989.06-),男,四川人,碩士研究生,研究方向:巖土工程、水工結(jié)構(gòu)工程及相關(guān)的信息化管理;劉潘(1991.03-),男,重慶人,碩士研究生,研究方向:巖土工程、水工結(jié)構(gòu)工程及相關(guān)的信息化管理。

      作者單位:重慶交通大學(xué),重慶 400074

      高唐县| 青海省| 涟水县| 年辖:市辖区| 金山区| 朝阳县| 新疆| 城固县| 兰考县| 灵台县| 行唐县| 三原县| 大埔区| 乡宁县| 清徐县| 古交市| 平乡县| 获嘉县| 莱芜市| 卫辉市| 遵义市| 焦作市| 阳曲县| 莆田市| 安岳县| 简阳市| 贵南县| 平阳县| 通辽市| 融水| 邹平县| 友谊县| 班玛县| 加查县| 长泰县| 电白县| 顺昌县| 西华县| 绥棱县| 宜黄县| 萍乡市|