如何經由VB的按鈕 由一個EXCEL檔案資料匯入至另一EXCEL
- 帖子
- 40
- 主題
- 17
- 精華
- 0
- 積分
- 62
- 點名
- 0
- 作業系統
- windows XP
- 軟體版本
- office 2003
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2011-12-27
- 最後登錄
- 2014-11-18
|
如何經由VB的按鈕 由一個EXCEL檔案資料匯入至另一EXCEL
想請問一下高手們
今天在EXCEL1.xls 新增了一個COMMAND
點擊後確認入徑後( 為另一個xls檔 :EX: EXCEL2.xls )
就能將EXCEL2.xls裡的表格資料貼至EXCEL1.xls
想請問一下 VB的巨集要怎麼寫會比較好
麻煩各位高手解答了>"< |
|
WOW
|
|
|
|
|
- 帖子
- 967
- 主題
- 0
- 精華
- 0
- 積分
- 1001
- 點名
- 0
- 作業系統
- WIN XP
- 軟體版本
- OFFICE 2003
- 閱讀權限
- 50
- 性別
- 男
- 來自
- 台北
- 註冊時間
- 2010-11-29
- 最後登錄
- 2022-5-17
 
|
2#
發表於 2011-12-27 14:11
| 只看該作者
回復 1# g93353
工作表整張複製- Sub XX()
- Source = Application.GetOpenFilename
- With Workbooks.Open(Source)
- For i = 1 To ActiveWorkbook.Sheets.Count
- .Sheets(i).Copy after:=ThisWorkbook.Worksheets(Sheets.Count)
- Next i
- .Close
- End With
- End Sub
複製代碼 |
|
|
|
|
|
|
- 帖子
- 40
- 主題
- 17
- 精華
- 0
- 積分
- 62
- 點名
- 0
- 作業系統
- windows XP
- 軟體版本
- office 2003
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2011-12-27
- 最後登錄
- 2014-11-18
|
3#
發表於 2011-12-27 14:24
| 只看該作者
先謝謝高手的解答
可否再請問一下 若是只限定某範圍的表單 複製到 另一範圍的表單 要如何作修改
也是由EXCEL1 到 EXCEL2
(EX : A1-10 B1-10 C1-10 要COPY至D2-11 E2-11 F2-11) |
|
WOW
|
|
|
|
|
- 帖子
- 967
- 主題
- 0
- 精華
- 0
- 積分
- 1001
- 點名
- 0
- 作業系統
- WIN XP
- 軟體版本
- OFFICE 2003
- 閱讀權限
- 50
- 性別
- 男
- 來自
- 台北
- 註冊時間
- 2010-11-29
- 最後登錄
- 2022-5-17
 
|
4#
發表於 2011-12-27 14:48
| 只看該作者
回復 3# g93353 - Sub XX()
- Source = Application.GetOpenFilename
- With Workbooks.Open(Source)
- .Sheets(1).Range("A1:C10").Copy ThisWorkbook.Sheets(1).Range("D2")
- .Close
- End With
- End Sub
複製代碼 |
|
|
|
|
|
|
- 帖子
- 40
- 主題
- 17
- 精華
- 0
- 積分
- 62
- 點名
- 0
- 作業系統
- windows XP
- 軟體版本
- office 2003
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2011-12-27
- 最後登錄
- 2014-11-18
|
5#
發表於 2011-12-27 15:05
| 只看該作者
|
WOW
|
|
|
|
|
- 帖子
- 76
- 主題
- 17
- 精華
- 0
- 積分
- 95
- 點名
- 0
- 作業系統
- windowsxp
- 軟體版本
- office2007
- 閱讀權限
- 20
- 性別
- 女
- 註冊時間
- 2016-8-19
- 最後登錄
- 2021-5-5

|
6#
發表於 2016-9-7 14:11
| 只看該作者
回復 4# register313
測試過這個程式碼後有個問題想請問一下~
若從excel1複製過來的工作表,其名稱也會跟者複製到excel2耶
可以直接複製裡面的內容就好了嘛~~
或是複製過來自動更名為'data'
圖例:
下面的工作表名稱想要固定為'data'
而不會隨著從excel1複製過來的名稱而改變 |
|
|
|
|
|
|
- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
7#
發表於 2016-9-7 15:01
| 只看該作者
回復 6# Changbanana
試試看- Option Explicit
- Sub XX()
- Dim Source As String, Ar()
- Source = Application.GetOpenFilename
- With Workbooks.Open(Source)
- Ar = .Sheets(1).Range("A1:C10").Value
- .Close
- End With
- With ThisWorkbook.Sheets(1).Range("D2").Resize(UBound(Ar), UBound(Ar, 2))
- .Value = Ar
- .Name = "Data"
- .Select
- End With
- End Sub
複製代碼 |
|
|
|
|
|
|
- 帖子
- 76
- 主題
- 17
- 精華
- 0
- 積分
- 95
- 點名
- 0
- 作業系統
- windowsxp
- 軟體版本
- office2007
- 閱讀權限
- 20
- 性別
- 女
- 註冊時間
- 2016-8-19
- 最後登錄
- 2021-5-5

|
8#
發表於 2016-9-7 15:08
| 只看該作者
回復 7# GBKEE
感謝高手的答覆~
若資料沒有限定範圍~是整個工作表複製呢
那這樣該怎麼改
謝謝您~
(目前正在學習vba中所以有好多問題@@ |
|
|
|
|
|
|
- 帖子
- 76
- 主題
- 17
- 精華
- 0
- 積分
- 95
- 點名
- 0
- 作業系統
- windowsxp
- 軟體版本
- office2007
- 閱讀權限
- 20
- 性別
- 女
- 註冊時間
- 2016-8-19
- 最後登錄
- 2021-5-5

|
9#
發表於 2016-9-7 15:17
| 只看該作者
回復 7# GBKEE - Sub XX()
- Dim Source As String, Ar()
- Source = Application.GetOpenFilename
- With Workbooks.Open(Source)
- Ar = .Sheets(1).Value
- .Close
- End With
- With ThisWorkbook.Sheets(1)
- .Value = Ar
- .Name = "Data"
- .Select
- End With
- End Sub
複製代碼 在Ar = .Sheets(1).Value 出了問題 |
|
|
|
|
|
|
- 帖子
- 76
- 主題
- 17
- 精華
- 0
- 積分
- 95
- 點名
- 0
- 作業系統
- windowsxp
- 軟體版本
- office2007
- 閱讀權限
- 20
- 性別
- 女
- 註冊時間
- 2016-8-19
- 最後登錄
- 2021-5-5

|
10#
發表於 2016-9-7 17:07
| 只看該作者
回復 7# GBKEE [/
剛之前在六樓回錯了
應該是要回覆二樓的程式
我表達的沒有很清楚抱歉
我的意思是(問題):
已在EXCEL1.xls 新增了一個COMMAND
點擊後確認入徑後( 為另一個xls檔 :EX: EXCEL2.xls )
就能將EXCEL2.xls裡的全部資料(只有一個工作表資料範圍沒限制)貼至工作表名稱固定為'data'的EXCEL1.xls
------------------------------------------------
測試完二樓的程式後
EXCEL2.xls裡的全部資料是全部貼至EXCEL1.xls了
但是連工作表的名稱也貼過去了
因EXCEL2.xls 的工作表的名稱是會隨著儲存日期而改變
而EXCEL1.xls裡的工作表有額外做巨集
下列是有關在EXCEL1.xls裡寫到的程式碼- Sheets("工作表1").Select
- Arr = Range([data!A2], [data!A65536].End(xlUp)(1, 65))
複製代碼 因為這樣故需要指定工作表的名稱
這樣巨集才可使用 |
|
|
|
|
|
|