請問這個EXCEL VBA該如何寫?有辦法寫嗎?

我有A.B.C.三個工作簿
假設現在A欄最後一比資料為5000
則VBA會判斷為.
A工作簿的A工作表中的A2到H5000
B工作簿的B工作表中的A2到H5000
C工作簿的C工作表中的A2到H5000
這三個是需要同步的內容.
如果是5001則同步內容會變成
A2:H5001

我想在A.B.C三個工作簿的需要同步更新資料的工作表各建議一個VBA按鈕
按下後能同步其它未開啟的不同工作簿的指定需同步工作表的資料
例如在A工作簿的需要同步資料的工作表按下VBA按鈕後.
(不需真正的去手動開啟B跟C的EXCEL檔案.讓VBA背景執行就可以)
B跟C工作簿裡需要同步的那個工作表就會更新資料到跟A工作簿需要同步的那個工作表內容一樣.
我的想法很單純不知道可不可行.
按下A工作表的同步按鈕後.
VBA應該要先做A工作簿的A工作表的A2:A5000是我們指定要複製的內容範圍複製起來.

然後VBA會去背景開啟B工作簿的B工作表將A2:H5000先選上並刪除然後並貼上A工作表A2:H5000工作表的內容
然後存檔關閉B工作表

接下來到VBA會去背景開啟C工作簿的C工作表將A2:H5000先選上並刪除然後並貼上A工作表A2:H5000工作表的內容然後存檔關閉C工作表.

然後在B工作簿的需要同步資料的工作表按下後.
A跟C需要同步的那個資料表就會更根新資料到跟A工作簿需要同步的那個工作表內容.

在C工作簿的需要同步資料的工作表按下後.
A跟B需要同步的那個資料表就會更根新資料到跟A工作簿需要同步的那個工作表內容.

當然我只會想..但是我不會寫..
也不知道能不能這樣寫..
只好上來求看看有沒朋友願意幫忙.

這樣的話不管我目前是在A或B或C工作簿只要我按下按鈕我就可以同步其它兩個需要同步的工作簿內容.
用連結外部資料來同步的話我覺得比較麻煩.使用中會不能修改檔案.
所以才想說這樣比較方便.而且不會有資料連結錯誤的問題.
文章關鍵字
補充若要做到不開啟,需要參考sql作法。
謝謝各位的指導。
我寫了
Sub 複製到志雍資料表()
'先A列取最後一行判斷需複製範圍
Dim rowNum As Long
rowNum = Cells(Rows.Count, 1).End(xlUp).Row
Range("A2:K" & rowNum).Select
Selection.Copy
Workbooks.Open ("D:\業物用\香港NG訂貨單\uibottest\志雍訂貨單.xlsm")
Workbooks("D:\業物用\香港NG訂貨單\uibottest\志雍訂貨單.xlsm").Activate
Workbooks("D:\業物用\香港NG訂貨單\uibottest\志雍訂貨單.xlsm").Sheets("零件價格表").Range("A2").Select
ActiveSheet.Paste
Workbooks("D:\業物用\香港NG訂貨單\uibottest\志雍訂貨單.xlsm").Close savechanges:=True
Application.CutCopyMode = False
End Sub

但是運行後出現"執行階段錯誤9"陣列超出索引範圍。
我找不到錯誤發生在哪裡.
所以希望有高手可以指出錯誤並幫忙寫一個正確的VBA給我學習.
另外有一個疑問是
用這種複製貼上的方式.
以後資料越來越多的話.
例如:需複製A1:H5000
這樣的資料VBA能承受受得了嗎.會不會直接就當掉了?
fdfanmo wrote:
https://www.mobile01.com/topicdetail.php?f=511&t=6287804&p=1#

我自己找到問題了~
原來是'''Workbooks("D:\業物用\香港NG訂貨單\uibottest\志雍訂貨單.xlsm").Activate'''
只有.open需要完整路徑
Workbooks("志雍訂貨單.xlsm").Activate --- 這樣就對了.
fdfanmo wrote:
謝謝各位的指導。
我...(恕刪)
頂多跑久一點,不至於當掉


fdfanmo wrote:
我自己找到問題了~
...(恕刪)
恭喜
文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!