Board logo

標題: [發問] 請教當資料即時變動後,如何自動即時加總? [打印本頁]

作者: pures    時間: 2013-3-20 22:06     標題: 請教當資料即時變動後,如何自動即時加總?

本帖最後由 pures 於 2013-3-20 22:08 編輯

請問當某一儲存格如DDE股票單量(A1),當單量變動時,
才即時加總這單量儲存格,變成總量B1儲存格,
單量不斷改變,總量一直加總(B1=B1+A1)
請教EXCEL VBA要如何寫,謝謝指教^^。
作者: GBKEE    時間: 2013-3-21 15:07

回復 1# pures
工作表的儲存格有輸入時:工作表的預設觸動是件程式
  1. Option Explicit
  2. Private Sub Worksheet_Change(ByVal Target As Range)
  3.     If Target.Address(0, 0) = "A1" Then         '單量(A1)
  4.         Application.EnableEvents = False
  5.         Range("B1") = Range("B1") + Target      '總量一直加總(B1=B1+A1)
  6.         Application.EnableEvents = True
  7.     End If
  8. End Sub
複製代碼
[attach]14417[/attach]
作者: pures    時間: 2013-3-21 19:39

本帖最後由 pures 於 2013-3-21 19:40 編輯

感恩GBKEE大大的回覆,
小弟照GBKEE大的程序做,A1儲存格有跳動,但B1的儲存格沒去加總,
圖示如下,不知哪裡有問題,煩請大大幫忙,謝謝您了^^。

[attach]14419[/attach]
作者: GBKEE    時間: 2013-3-21 21:01

回復 3# pures
儲存格的DDE 會引發工作表的重算,一樣是工作表的預設事件
   
  1. Option Explicit
  2. Private Sub Worksheet_Calculate()
  3.     Range("B1") = Range("B1") + [A1]      '總量一直加總(B1=B1+A1)
  4. End Sub
複製代碼

作者: pures    時間: 2013-3-21 22:50

感恩GBKEE大大的回覆,
可以運作了,非常謝謝您^^。
作者: twispin    時間: 2015-4-13 17:28

本帖最後由 twispin 於 2015-4-13 17:29 編輯

我完全按照GBKEE大大的做可是沒辦法耶(我是用EXCEL2003)
開始執行以後,他不會等DDE儲存格有變動時才加總一次
而是每一秒加了幾百次一直加
我可以指定某一個DDE儲存格有變動時才加總嗎?該怎麼做?謝謝!!
  1. Option Explicit
  2. Private Sub Worksheet_Calculate()
  3.     Range("B1") = Range("B1") + [A1]      '總量一直加總(B1=B1+A1)
  4. End Sub
複製代碼

作者: twispin    時間: 2015-4-13 17:32

今天為了這個搞定這個檔案
一開始以為是EXCEL本身和win8的問題
到最後連win8都重灌了,結果還是一樣,只要開這個檔案就當機
後來把上面那段程式碼刪掉才搞定...
作者: twispin    時間: 2015-4-13 20:08

我自己發現問題點了...
假設DDE輸出的資料在sheets1的A1
那麼就只能在sheets1的頁面寫If Target.Address(0, 0) = "A1"
如果我在sheets2的A1寫入"=sheets1 !A1",雖然資料還是會跳動
但是對sheets2來說他似乎不會觸動工作表重算
所以就算shets2有寫If Target.Address(0, 0) = "A1"也沒用




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