VBA中涉及到跨工作簿操作,往往都是先打開目標工作簿,,然后再操作讀取數(shù)據(jù),。除了用open方法打開工作簿外,getobject函數(shù)也可以做到跨工作簿讀取數(shù)據(jù),。 getobject函數(shù)在(對象)工作簿沒有打開的時候,,會自動打開工作簿(對象),如果(對象)工作簿已經打開了,,則直接引用工作簿(對象),。 getobject是在后臺打開工作簿,并不是“不打開工作簿”,。對于一些沒有密碼和鏈接的工作簿,,使用getobject函數(shù)以隱藏的方式打開工作簿,速度會稍快些,。 對于有密碼的工作簿,,就必須先open打開,然后再getobject,。 GetObject函數(shù)的使用十分簡單,。 栗子:桌面有一文件夾,該文件夾里的工作簿是要引用的數(shù)據(jù),。 其路徑為:C:\Users\Administrator\Desktop\馬克思主義\數(shù)據(jù).xlsx 數(shù)據(jù)表為: 像open方法一樣,,知道文件的路徑就可以使用getobject函數(shù)跨工作簿獲取數(shù)據(jù)。在另外一工作簿寫入代碼,,跨工作簿提取數(shù)據(jù),。代碼如下: Sub 使用GetObject() Dim Wb As Workbook '定義工作簿 Dim Temp As String '路徑 '全路徑 Temp = 'C:\Users\Administrator\Desktop\馬克思主義\數(shù)據(jù).xlsx' Set Wb = GetObject(Temp) '設置 數(shù)據(jù).xlsx工作簿對象給Wb變量(打開目標工作簿) With Wb.Sheets(1) '操作目標工作簿的數(shù)據(jù) .Range('A1').CurrentRegion.Copy ThisWorkbook.Sheets('sheet5').[a1] End With Wb.Close False '關閉 數(shù)據(jù).xlsx工作簿 Set Wb = Nothing '釋放變量 End Sub 假如文件的路徑寫錯了,自然報錯 最后補充:將getobject換成open方法同樣結果,。 |
|
來自: L羅樂 > 《數(shù)據(jù)匯總》