如果是手工提取資料,通常是開啟檔案在複製貼上。換用vba則可以快速開啟後馬上覆制好,能節省不少時間和精力。
workbooks.open可以很方便地開啟檔案,但是當需要操作的檔案過多的時候,狀態列堆滿了開啟的檔案也不好看。下面介紹兩種不用開啟檔案就能提取資料的方法。
sub getdata_1()
dim dataexcel as object, wb as workbook, sht as worksheet '定義必要的物件
set wb = dataexcel.workbooks.open(path) '括號中path為你要操作檔案的路徑
set sht = wb.worksheets(1)
for i = 3 to 10
sheets(3).cells(i, 1) = sht.cells(i, 3) '讀取資料
next i
wb.close '關閉檔案
set wb = nothing
msgbox "ok"
end sub
上面這段**實現的是在不開啟excel檔案的情況向將乙個檔案的部分資料複製到另乙個檔案中,但是仔細看,**中有「wb.close」,說明檔案還是開啟了啊。確實如此,不過開啟檔案的過程系統在後台執行了,所以我們在左面上是無法觀察到的。
第二種方法和這個類似,需要用到getobject。只是省去了excel物件的定義和賦值,所以就不適合用來操作txt等格式的資料,如果操作的都是excel檔案用這種方法會簡便一些。
sub getdata_2()
dim wb as workbook, sht as worksheet
set wb = getobject(path)
set sht = wb.worksheets(1)
for i = 3 to 10
sheets(3).cells(i, 1) = sht.cells(i, 3)
next i
wb.close
set wb = nothing
msgbox "ok"
end sub
用這兩種方法的好處除了避免在前台開啟檔案之外,還有乙個優點就是第二次操作會比第一次快很多! Excel中使用VBA訪問Access資料庫
excel中使用vba的優點 巨集是vba的一種簡單應用。巨集可以通過編寫vba 錄製巨集兩種方式獲得。通常是先錄製巨集,再在獲得的巨集的基礎上進行語句優化調整,最後得到想要的巨集。在 誰說菜鳥不會資料分析 工具篇 第四章 讓報告自動化中,涉及到根據輸入日期,從access資料庫中提取相關資料到ex...
Excel 不開啟檔案進行跨工作簿查詢
在使用excel時,我們經常會遇到這種問題,我的資料來源在表1裡面,但是我要在表2裡面做報表,用lookup和offset等公式都需要開啟表1操作,否則就會報錯。那麼有沒有辦法在不開啟表1的情況下在表2內更新資料呢?有的。先看看效果 接下來就是教程了,跟著教程做一遍有利於加深記憶哦。示例檔案 如上圖...
記錄 excel讀取到DataTable資料表中
excel讀取 public class officehelper 根據指定路徑讀取檔案 filestream fs new filestream filename,filemode.open,fileaccess.read 根據檔案流建立excel資料結構 iworkbook workbook w...