返回列表 上一主題 發帖

[發問] 將資料寫入到其他多個EXCEL檔案

感謝lpk187!
正在努力理解你寫的程式架構

TOP

本帖最後由 lpk187 於 2015-11-4 15:30 編輯

回復 1# mark761222

首先必須說明,兩個xls的工作表資料不可能同步!!就算同時更新時,也不能稱為同步!就算程式碼寫在a檔案,也一樣,都會有例外的時候,所以只能以程式來讀取a檔案的最新資料而已,下面程式碼也只是讀取最新資料,而不能稱之為"同步"
其2個問題程式碼如下:
  1. Public Sub ex1()
  2.     Sheets("工作表1").UsedRange.ClearContents
  3.     Dim xlPath As Variant, xlFile As Variant
  4.     Dim arr
  5.     xlPath = ThisWorkbook.Path & "\"
  6.     xlFile = "a.xlsx"
  7.     Workbooks.Open (xlPath & xlFile)
  8.     arr = Workbooks(xlFile).Worksheets("工作表1").UsedRange
  9.     Workbooks(xlFile).Close True
  10.     Sheets("工作表1").[A1].Resize(UBound(arr), UBound(arr, 2)) = arr
  11. End Sub
  12. Public Sub ex2()
  13.     Sheets("工作表1").UsedRange.ClearContents
  14.     Dim xlPath As Variant, xlFile As Variant
  15.     Dim Barr, Darr, Earr
  16.     xlPath = ThisWorkbook.Path & "\"
  17.     xlFile = "a.xlsx"
  18.     Workbooks.Open (xlPath & xlFile)
  19.     With Workbooks(xlFile).Worksheets("工作表1")
  20.         Barr = .Range("B1", .Cells(65535, "B").End(xlUp))
  21.         Darr = .Range("D1", .Cells(65535, "D").End(xlUp))
  22.         Earr = .Range("E1", .Cells(65535, "E").End(xlUp))
  23.     End With
  24.     Workbooks(xlFile).Close True
  25.     With Sheets("工作表1")
  26.         .[A1].Resize(UBound(Barr)) = Barr
  27.         .[B1].Resize(UBound(Darr)) = Darr
  28.         .[C1].Resize(UBound(Earr)) = Earr
  29.     End With
  30. End Sub
複製代碼

TOP

兩個xls的工作表資料同步

問題一
假如我有A.xlsx  與B.xlsm (巨集檔)
A.xlsx 有工作表1

B.xlsm 有工作表1,要去抓取所有A的所有工作表1內容到B工作表1 (只要A.xlsx資料有更新B就會更新資料)

問題二

假如我有A.xlsx  與B.xlsm (巨集檔)
A.xlsx 有工作表1

B.xlsm 有工作表1,要去抓取所有A工作表1裡面整合內容如 B整行、D整行、E整行 到B工作表1的 A整行、B整行、C整行 (只要A.xlsx資料有更新B就會更新資料)

麻煩各位大大了

TOP

        靜思自在 : 要批評別人時,先想想自己是否完美無缺。
返回列表 上一主題