- 帖子
- 552
- 主題
- 6
- 精華
- 0
- 積分
- 576
- 點名
- 0
- 作業系統
- win7
- 軟體版本
- office 2010
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2015-2-8
- 最後登錄
- 2026-9-10
  
|
3#
發表於 2015-11-4 15:27
| 只看該作者
本帖最後由 lpk187 於 2015-11-4 15:30 編輯
回復 1# mark761222
首先必須說明,兩個xls的工作表資料不可能同步!!就算同時更新時,也不能稱為同步!就算程式碼寫在a檔案,也一樣,都會有例外的時候,所以只能以程式來讀取a檔案的最新資料而已,下面程式碼也只是讀取最新資料,而不能稱之為"同步"
其2個問題程式碼如下:- Public Sub ex1()
- Sheets("工作表1").UsedRange.ClearContents
- Dim xlPath As Variant, xlFile As Variant
- Dim arr
- xlPath = ThisWorkbook.Path & "\"
- xlFile = "a.xlsx"
- Workbooks.Open (xlPath & xlFile)
- arr = Workbooks(xlFile).Worksheets("工作表1").UsedRange
- Workbooks(xlFile).Close True
- Sheets("工作表1").[A1].Resize(UBound(arr), UBound(arr, 2)) = arr
- End Sub
- Public Sub ex2()
- Sheets("工作表1").UsedRange.ClearContents
- Dim xlPath As Variant, xlFile As Variant
- Dim Barr, Darr, Earr
- xlPath = ThisWorkbook.Path & "\"
- xlFile = "a.xlsx"
- Workbooks.Open (xlPath & xlFile)
- With Workbooks(xlFile).Worksheets("工作表1")
- Barr = .Range("B1", .Cells(65535, "B").End(xlUp))
- Darr = .Range("D1", .Cells(65535, "D").End(xlUp))
- Earr = .Range("E1", .Cells(65535, "E").End(xlUp))
- End With
- Workbooks(xlFile).Close True
- With Sheets("工作表1")
- .[A1].Resize(UBound(Barr)) = Barr
- .[B1].Resize(UBound(Darr)) = Darr
- .[C1].Resize(UBound(Earr)) = Earr
- End With
- End Sub
複製代碼 |
|