返回列表 上一主題 發帖

如何經由VB的按鈕 由一個EXCEL檔案資料匯入至另一EXCEL

回復 10# Changbanana
試試看
  1. Option Explicit
  2. Sub Ex()
  3.     Dim Source As String, Ar()
  4.     Source = Application.GetOpenFilename
  5.     With Workbooks.Open(Source)
  6.         Ar = .Sheets(1).UsedRange.Value
  7.         .Close
  8.     End With
  9.     With ThisWorkbook.Sheets("data").Range("A1").Resize(UBound(Ar), UBound(Ar, 2))
  10.         .Value = Ar
  11.         .Name = "Data"
  12.         .Select
  13.     End With
  14. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 11# GBKEE


感謝G大的大力相助
我昨天有試過你之前貼的程式碼
  1. Private Sub Data_Click()
  2. Dim Source As String, Ar()
  3.     Source = Application.GetOpenFilename
  4.     With Workbooks.Open(Source)
  5.         Ar = .Sheets(1).Range("A1:BN65536").Value
  6.         .Close
  7.     End With
  8.     With ThisWorkbook.Sheets("data").Range("A1").Resize(UBound(Ar), UBound(Ar, 2))
  9.         .Value = Ar
  10.         .Name = "data"
  11.      End With
  12.     End Sub
複製代碼
中間我直接讀取之前檔案全部儲存格內容
現在改成
  1. Private Sub Data_Click()
  2. Dim Source As String, Ar()
  3.     Source = Application.GetOpenFilename
  4.      With Workbooks.Open(Source)
  5.         Ar = .Sheets(1).UsedRange.Value
  6.         .Close
  7.     End With
  8.     With ThisWorkbook.Sheets("data").Range("A1").Resize(UBound(Ar), UBound(Ar, 2))
  9.         .Value = Ar
  10.         .Name = "data"
  11.      End With
  12. End Sub
複製代碼
從Range("A1:BN65536")改為UsedRange
這個方法快多了
有成功執行 真的很感謝你!!!!!

TOP

不建議使用UsedRange,如果遇到有空一大段的儲存格,那資料就無法完整匯出

TOP

回復 13# white5168
謝謝你的建議,已修正回來
回復 11# GBKEE
又有個疑問

若不要使用vb按鈕

直接應用檔案名字(在同個資料夾下)

就可以把資料匯入

這該怎麼修改呢?

ex:檔案名稱為==>測試.xlsx

TOP

這是我測試的code但有錯誤
  1. Private Sub 測試()
  2. Dim Source As String, Ar()
  3.       Source = application.run(Activeworkbook.Name&"!測試")
  4.       With Workbooks.Open(Source)
  5.         Ar = .Sheets(1).Range("A1:D65536").value
  6.         .Close
  7.     End With
  8.     With ThisWorkbook.Sheets("測試").Range("A1").Resize(UBound(Ar), UBound(Ar, 2))
  9.         .value = Ar
  10.         .Name = "測試"
  11.      End With

  12.     MsgBox "測試資料匯入成功"
  13. End Sub
複製代碼
或是可否使用在資料表上設定一個儲存格的名稱為test
然後應用這個名稱 可以把檔案匯入進來

TOP

        靜思自在 : 吃苦了苦、苦盡廿來,享福了福、福盡悲來。
返回列表 上一主題