急!急!想請問寫出選擇性匯入資料的方法(已有一段程式碼,但不知道如何改寫))
- 帖子
- 27
- 主題
- 11
- 精華
- 0
- 積分
- 38
- 點名
- 0
- 作業系統
- window
- 軟體版本
- window7
- 閱讀權限
- 10
- 性別
- 男
- 註冊時間
- 2019-12-12
- 最後登錄
- 2021-4-21
|
如何解?????執行階段錯誤"1004"
各位大大好
之前在此論壇上使用一個vba程式,可選取路經資料夾的檔案並使其自東複製後貼上指定的SHEET
但卻出現 執行階段錯誤"1004"
找不到". 請檢查檔名是否有拼錯,或檔案位置是否正確.
程式如下
Sheets("工作表1").Activate
fds = Application.GetOpenFilename("Excel Files (*.xlsm;*.xlsx), *.xlsm;*.xlsx", , , , True)
If IsArray(fds) Then
For i = 1 To UBound(fds)
[A2].Offset(i - 1) = fds(i)
Next
End If
Sheets("工作表1").Activate
For Each a In Range([A2], Cells(Rows.Count, 1).End(xlUp))
With Workbooks.Open(a)...................................................這句出現ERROR
.Sheets.Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
.Close 0
End With
Next
Sheets("工作表1 (2)").Activate
Range("A2").Select
Columns("A:A").EntireColumn.AutoFit
Sheets("工作表1").Activate
End Sub
想麻煩各位大大看下,幫個忙嗎? |
|
|
Ian
|
|
|
|
|
- 帖子
- 27
- 主題
- 11
- 精華
- 0
- 積分
- 38
- 點名
- 0
- 作業系統
- window
- 軟體版本
- window7
- 閱讀權限
- 10
- 性別
- 男
- 註冊時間
- 2019-12-12
- 最後登錄
- 2021-4-21
|
急!急!想請問寫出選擇性匯入資料的方法(已有一段程式碼,但不知道如何改寫))
請問各位大大
以下兩段程式碼是
1.開啟資料夾讀取所要的檔案路徑連結
2.把開啟的連結檔案打開 並將檔案內的sheet資料匯入
問題是當想要匯入的資料有很多sheet,想指定匯入某個sheet的某一欄位或某一列資料時,要怎麼改寫
謝謝各位指教阿- Sub DATA_INPUT()
- fds = Application.GetOpenFilename("Excel Files (*.xlsm;*.xlsx), *.xlsm;*.xlsx", , , , True)
-
- If IsArray(fds) Then
- For i = 1 To UBound(fds)
- [A2].Offset(i - 1) = fds(i)
- Next
- End If
- ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
- On Error Resume Next '''''' 錯誤跳過
- For Each a In Range([A2], Cells(Rows.Count, 1).End(xlUp))
- With Workbooks.Open(a)
- .Sheets.Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
- .Close 0
- End With
- Next
- On Error GoTo 0 '''''''''''''錯誤跳過'''''''''''
- End Sub
複製代碼 |
|
|
Ian
|
|
|
|
|
- 帖子
- 27
- 主題
- 11
- 精華
- 0
- 積分
- 38
- 點名
- 0
- 作業系統
- window
- 軟體版本
- window7
- 閱讀權限
- 10
- 性別
- 男
- 註冊時間
- 2019-12-12
- 最後登錄
- 2021-4-21
|
回復 4# GBKEE
請問一下
我想改寫的是
.Sheets.Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
上式**為所開啟活頁簿上所有工作表複製到ThisWorkbook(執行巨集的活頁簿)下
(把所有開啟的活頁簿上的某一工作表 中的(列如:Sheet("C").Range("A39:D99")自動複製到我指定的sheet(ie:"工作表2")的A1開始)
因為開啟的工作表可能有很多個(ie:sheet("C")/Sheet("C1") /Sheet("C2")....但每個sheet裡 我只要Range("A39:D99"),
可以改寫成 .Sheets.Range("A39:D99").Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
TKS |
|
|
Ian
|
|
|
|
|
- 帖子
- 27
- 主題
- 11
- 精華
- 0
- 積分
- 38
- 點名
- 0
- 作業系統
- window
- 軟體版本
- window7
- 閱讀權限
- 10
- 性別
- 男
- 註冊時間
- 2019-12-12
- 最後登錄
- 2021-4-21
|
|
|
Ian
|
|
|
|
|
- 帖子
- 27
- 主題
- 11
- 精華
- 0
- 積分
- 38
- 點名
- 0
- 作業系統
- window
- 軟體版本
- window7
- 閱讀權限
- 10
- 性別
- 男
- 註冊時間
- 2019-12-12
- 最後登錄
- 2021-4-21
|
|
|
Ian
|
|
|
|
|
- 帖子
- 27
- 主題
- 11
- 精華
- 0
- 積分
- 38
- 點名
- 0
- 作業系統
- window
- 軟體版本
- window7
- 閱讀權限
- 10
- 性別
- 男
- 註冊時間
- 2019-12-12
- 最後登錄
- 2021-4-21
|
回復 9# GBKEE
謝謝!大大的幫助!
感激不盡! |
|
|
Ian
|
|
|
|
|