返回列表 上一主題 發帖

[發問] Calculate,能否回傳發生變動的儲存格的欄位

因為整張表都是公式,change事件應該是不會被觸動的
所以才直接想到用calculate
EXCEL VBA新手,請前輩多多指教

TOP

回復 6# c_c_lai

謝謝你詳細的解說,終於懂了。
其實 Private Sub Worksheet_Calculate()並未傳入參數,我將  If Target.Value = "YES" 中的 Target 誤認為是傳入參數值,才以為是 C3公式觸動Worksheet_Calculate。
後來仔細觀察 Private Sub Worksheet_Change(ByVal Target As Range) 中的 If Target.Value = "YES" Then 根本不會執行到,因 Target 僅有A1、B1,C3是公式沒有觸發是我自己觀察不夠,你真是 用心良苦。


Private Sub Worksheet_Calculate()
    Dim Target As Range
    Set Target = Range("C1")

    '  If Not Intersect(target, Range("C1")) Is Nothing Then
    If Target.Value = "YES" Then
        '  Run my VBA code
        MsgBox "Worksheet_Calculate is Activvated!"
    End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
    '  If Not Intersect(target, Range("C1")) Is Nothing Then
    If Target.Address = "$C$1" Then
        '  MyMacro()
        MsgBox "Worksheet_Change = " & Target.Address
    End If
End Sub
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

回復 11# ketrddem
你使用哪一家券商軟體?

TOP

〔觸動〕與〔變動〕應是兩回事!
〔觸動〕後,不一定公式值有〔變動〕,
若儲存格之間又有關聯參照,也許〔連動〕也會發生,
沒有檔案,這樣猜不是辦法!!!

TOP

回復 13# c_c_lai


    元大RTD,沒有使用DDE。

DDE太不方便了,還是RTD比較好用
EXCEL VBA新手,請前輩多多指教

TOP

回復 15# ketrddem
RTD 不需先開啟券商軟體,它會自動連結,
這種 COM 的機制比較好用。以前也使用元大。
我曾經也使用過 Workbook_Calculate()
但是究竟是哪個欄位在觸發,欄位位址為何,
很難掌握,你可有好的 Idea ?

TOP

小弟不才,只有想法,整個EXCEL還沒真的寫完整。
所以提供圖例,希望各位能提供些想法供小弟參考。

123.jpg (206.94 KB)

圖例

123.jpg

EXCEL VBA新手,請前輩多多指教

TOP

回復 16# c_c_lai


我有想過,陣列比對。

每十秒或二十秒比對一次。

假設
10:00分0秒,儲存內容為陣列1
10:00分10秒,儲存內容為陣列2

陣列1與陣列2比對,找出差異欄位,定位出股號及條件原因
然後把資訊寫進別的儲存格
寫進後,陣列1刪除,陣列2變更為陣列1,等著下個十秒再做陣列2的比對
但有想法卻不知是否真正可行,寫了不知對系統會不會造成很大負擔。
更重要的是,小弟對陣列不太熟。就算陣列寫出來,也不知如何做比對定位。
EXCEL VBA新手,請前輩多多指教

TOP

回復 17# ketrddem

以這樣的表格, 同時成立條件的可能不只一個, 而且自動重算無法判定是哪個(些)儲存格,
建議公式改為:
=IF(條件成立,"YES",0)

當發生事件觸動,
Set Rng = [H:H].SpecialCells(xlCellTypeFormulas, 2)  '抓取公式中的[文字值]儲存格
再用
For Each xR in Rng
    逐一記錄
next

TOP

回復 19# 准提部林

准提大大,承蒙你關照,沒想到果然把您釣出來了。以前在奇摩知識就發過許多問題,也蒙你指導許多。

這個例子,並不是要取儲存格中的文字「YES」

而是要取「YES」這個值它的列號及欄名,以便得知是那一支股票(列號)符合了選股條件,以及發生在那一種條件下(欄名)的選股條件。

圖例更改剛剛小弟發的圖,發錯圖了,這張後面還有說明,比較完整。

cats.jpg (262.69 KB)

cats.jpg

EXCEL VBA新手,請前輩多多指教

TOP

        靜思自在 : 【時間無法遮擋】怕時間消逝,花了許多心血,想盡各式方法要遮擋時間,結果是:浪費了更多時間,且一無所成!
返回列表 上一主題