Board logo

標題: [發問] 檔案開啟自動更新外部連線資料,如何在更新完成後自動觸發巨集? [打印本頁]

作者: jsleee    時間: 2022-12-8 09:29     標題: 檔案開啟自動更新外部連線資料,如何在更新完成後自動觸發巨集?

各位先進好
        雖然已經嘗試著在討論區中搜尋類似巨集觸發的帖子,但似乎無法解決我的問題...
        如題,我的檔案開啟會自動更新外部連線資料,我希望在外部資料更新完成後自動觸發巨集,
        由於外部資料更新後,工作表中的原始資料列會改變,因此有嘗試在一個固定的儲存格使用 COUNTA,
        並利用 Private Sub Worksheet_Change(ByVal Target As Range) 這種方式來觸發,
        但測試後發現,檔案開啟資料更新完後,該儲存格的數字因為資料列數改變已經同步改變了,但卻沒有觸發巨集...
        只有當我雙按點選該儲存格然後按Enter後,才能正常觸發巨集。
        是否有甚麼語法可以直接接續外部資料更新完成後自動觸發巨集?
        或者如上述使用COUNTA的方式,但觸發語法需要調整?
        以上疑問再請先進協助解惑,感恩!
JS
作者: Andy2483    時間: 2022-12-8 10:29

回復 1# jsleee


    謝謝前輩發表此主題
後學也很想學前輩的情境敘述問題與解方相關知識,方便提供範例檔案嗎?
論壇很多厲害的前輩可以建議解決方案!
但是有提供範例檔的最有機會
作者: singo1232001    時間: 2022-12-8 18:31

回復 1# jsleee


如果是dde
在任一儲存格用個=號 把時常變換的都丟進來並加起來  
用&起來也可以試試
然後
Private Sub Worksheet_Calculate() 用這個觸發
作者: jsleee    時間: 2022-12-9 09:15

回復 2# Andy2483


您好,因檔案外部連線資料為公司資料庫,因此不方便提供檔案,造成不便請見諒。
JS
作者: jsleee    時間: 2022-12-9 09:18

回復 3# singo1232001

感謝您提供方向,初步測試會造成頻繁的重複觸發的情況,
因急著處理其他事,先暫擱,忙完後再持續測試看看,
感謝您
JS
作者: singo1232001    時間: 2022-12-9 10:59

回復 5# jsleee


    看你要主動還是被動

主動計時就不靠事件了
作者: singo1232001    時間: 2022-12-9 12:49

回復 6# singo1232001


   Thisworkbook內 有一段巨集

Private Sub Workbook_Open()
On Error Resume Next
Sheets("啟動中").Name = "已停止"
Sheets("啟動中").Tab.Color = 255
On Error GoTo 0
End Sub

這些刪掉  我改完忘了刪
作者: jackyq    時間: 2022-12-9 13:15

try .......

Private Sub Worksheet_Calculate()

End Sub
作者: 准提部林    時間: 2022-12-9 16:32

1) 檔案是連結外部檔案的公式? 或dde?
2) 公式值有變動 與 更新是否完成 是不同概念
3) 用Worksheet_Calculate的話, 如果公式有很多個, 那可能造成頻繁觸發
4) 除了這個檔案, 是否可能在這檔案其它工作表操作? 甚或同時開啟其它檔案操作?
作者: 准提部林    時間: 2022-12-9 16:34

這帖子有幾個範例檔, 參考看看
http://forum.twbts.com/viewthread.php?tid=15062
作者: jsleee    時間: 2022-12-12 17:13

回復 7# singo1232001

您好,我另外新增一個工作表,並僅在該工作表設定一個COUNTA的公式,
然後在該工作表透過Private Sub Worksheet_calculate() 來處理,就能避免頻繁觸發的問題了,
謝謝您,問題大致上解決了。
作者: jsleee    時間: 2022-12-12 17:14

回復 8# jackyq


您好,我另外新增一個工作表,並僅在該工作表設定一個COUNTA的公式,
然後在該工作表透過Private Sub Worksheet_calculate() 來處理,就能避免頻繁觸發的問題了,
謝謝您,問題大致上解決了。
作者: jsleee    時間: 2022-12-12 17:18

回復 9# 准提部林

您好,我不是很清楚DDE是甚麼,我的資料是透過 Oracle驅動程式以ODBC連線方式從資料庫抓取資料,
如前面所提,我另外新增一個工作表,並僅在該工作表設定一個COUNTA的公式,
然後在該工作表透過Private Sub Worksheet_calculate() 來處理,就能避免頻繁觸發的問題了,
謝謝您,問題大致上解決了。
作者: jsleee    時間: 2022-12-12 17:21

回復 10# 准提部林


    感謝分享,我再花時間好好研究研究,感恩!




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)