VBA技巧 不開啟Excel讀取資料

2021-10-04 10:27:50 字數 1116 閱讀 9751

如果是手工提取資料,通常是開啟檔案在複製貼上。換用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...