作者kcyy (嫑槑)
看板Office
標題[算表] VBA將其他活頁簿工作表複製過來
時間Fri Jan 18 18:15:14 2019
軟體: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://webptt.com/m.aspx?n=bbs/Office/M.1547806518.A.389.html
1F:→ soyoso: 不開啟活頁簿可以ado方式 01/18 18:28
2F:→ soyoso: range.copyfromrecordset 01/18 18:29
3F:→ soyoso: 或是在儲存格內以"='[完整路徑\檔名.xls]sheet3'!儲存格 01/18 18:33
4F:→ soyoso: 再range.copy到其他儲存格,如要只保留值的話 01/18 18:34
5F:→ soyoso: range.pastespecial貼上值 01/18 18:35
6F:→ soyoso: 以=...儲存格方面,有可能會因來源工作表為空白儲存格而回 01/18 18:36
7F:→ soyoso: 傳0值,就看要調整或就以ado方式 01/18 18:37
8F:→ soyoso: 測試了一下原文的巨集,是可以在不開檔下回傳的 01/18 19:09
10F:→ soyoso: 測試版本同原文寫到的2010 01/18 19:10
11F:→ kcyy: 感謝S大協助 01/18 22:22