[算表] VBA將其他活頁簿工作表複製過來

看板Office作者 (嫑槑)時間7年前 (2019/01/18 18:15), 編輯推噓0(0011)
留言11則, 2人參與, 7年前最新討論串1/1
軟體:EXCEL 版本:2010 我想要將其他沒開啟的活頁簿中的某一分頁,複製到我現在的活頁簿新增的工作表中 在網路上找到其他大神提供的方法如下,我把他改成放在D槽, 但是執行的時候如果沒有開啟"D:\Book2.xls"這個活頁簿,都會在錯誤那行, 必須要活頁簿開啟的狀態下才能成功,請問有什麼方法可以不開啟活頁簿就直接複製過來? 謝謝 資訊如下: 把 Excel 活頁簿當成來源資料庫: 假設要匯入 "D:\Book2.xls" 的 "sheet3", 不需開啟 "D:\Book2.xls" : Sub 工作表匯入() ActiveWorkbook.Worksheets.Add With ActiveSheet.QueryTables.Add(Connection:=Array( _ "OLEDB;Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User ID=Admin;Data Source=D:\Book2.xls;Mode=Share Deny Write;Extended Properties=""H" _ , _ "DR=NO;"";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Database Password="""";Jet OLEDB:Engine Type=35;Jet OLED" _ , _ "B:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Passwo" _ , _ "rd="""";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet O" _ , "LEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False"), Destination _ :=Range("A1")) .CommandType = xlCmdTable .CommandText = Array("Sheet3$") .Name = "Book2" .FieldNames = False .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .BackgroundQuery = True .RefreshStyle = xlInsertDeleteCells .SavePassword = False .SaveData = True .AdjustColumnWidth = True .RefreshPeriod = 0 .PreserveColumnInfo = True .SourceDataFile = "D:\Book2.xls" .Refresh BackgroundQuery:=False '錯誤錯誤錯誤錯誤錯誤 End With End Sub -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.35.89.228 ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1547806518.A.389.html

01/18 18:28, 7年前 , 1F
不開啟活頁簿可以ado方式
01/18 18:28, 1F

01/18 18:29, 7年前 , 2F
range.copyfromrecordset
01/18 18:29, 2F

01/18 18:33, 7年前 , 3F
或是在儲存格內以"='[完整路徑\檔名.xls]sheet3'!儲存格
01/18 18:33, 3F

01/18 18:34, 7年前 , 4F
再range.copy到其他儲存格,如要只保留值的話
01/18 18:34, 4F

01/18 18:35, 7年前 , 5F
range.pastespecial貼上值
01/18 18:35, 5F

01/18 18:36, 7年前 , 6F
以=...儲存格方面,有可能會因來源工作表為空白儲存格而回
01/18 18:36, 6F

01/18 18:37, 7年前 , 7F
傳0值,就看要調整或就以ado方式
01/18 18:37, 7F

01/18 19:09, 7年前 , 8F
測試了一下原文的巨集,是可以在不開檔下回傳的
01/18 19:09, 8F

01/18 19:09, 7年前 , 9F

01/18 19:10, 7年前 , 10F
測試版本同原文寫到的2010
01/18 19:10, 10F

01/18 22:22, 7年前 , 11F
感謝S大協助
01/18 22:22, 11F
文章代碼(AID): #1SGQSsE9 (Office)
文章代碼(AID): #1SGQSsE9 (Office)