返回列表 上一主題 發帖

[發問] 自動運算的寫法

[發問] 自動運算的寫法

請問一下,我想要讓工作表A1跟B1輸入數字,C1就可以自動運算,
我用一般的巨集去執行是OK的,
For i = 1 To 10
Cells(i, 3) = Cells(i, 2) + Cells(i, 1)
Next
可是如果用『CHANGE』就會變成無限迴圈,一直脫離不了,
用DO UNTIL也一樣死在那邊,
請問在『CHANGE』下,該怎麼寫才不會陷入無限迴圈?謝謝~~~

感謝以上各位的指導,對於我這個剛買書來學的老頭子來說,真是獲益良多。

TOP

回復 3# owen06

你的程式碼最開始有下面這條陳述式

    Option Explicit

語法

Option Explicit

請注意

Option Explicit 陳述式必出現在模組裏,且在任何程序之前。

當 Option Explicit 在模組中使用時,必須以 Dim, Private、Public、ReDim 或 Static 陳述式來明確宣告所有的變數。如果使用未宣告的變數名稱,則在編譯階段時,會發生錯誤。

如果未使用 Option Explicit 陳述式,則所有未宣告的變數都是 Variant 型態,除非預設的型態另以 Deftype 陳述式所指定過。

附註 Option Explicit 可避免打錯變數名稱或在有效範圍內相同的變數名稱。

TOP

回復 3# owen06
加上 Dim i As Integer 就 OK 了!
  1. Option Explicit
  2. 'EnableEvents 屬性  如果指定物件能觸發事件,則本屬性為 True。讀/寫 Boolea
  3. '物件能觸發事件 ->  啟動物件的預設程序
  4. Private Sub Worksheet_Change(ByVal Target As Range)  'Worksheet_Change 工作表儲存格有修改的預設程序
  5.     Dim i As Integer
  6.     Application.EnableEvents = False                 '停止: 觸發事件
  7.     For i = 1 To 10
  8.         Cells(i, 3) = Cells(i, 2) + Cells(i, 1)
  9.     Next
  10.     Application.EnableEvents = True                    ''啟動: 觸發事件
  11. End Sub
複製代碼

TOP

回復 2# GBKEE

版主你好,我複製代碼去執行,在a1輸入數字會出現”變數未定義”,
請問是哪邊有問題呢?謝謝~

2013-07-25_115235.jpg (103.41 KB)

2013-07-25_115235.jpg

TOP

回復 1# owen06
  1. Option Explicit
  2. 'EnableEvents 屬性  如果指定物件能觸發事件,則本屬性為 True。讀/寫 Boolea
  3. '物件能觸發事件 ->  啟動物件的預設程序
  4. Private Sub Worksheet_Change(ByVal Target As Range)  'Worksheet_Change 工作表儲存格有修改的預設程序
  5.     Application.EnableEvents = False                 '停止: 觸發事件
  6.     For i = 1 To 10
  7.         Cells(i, 3) = Cells(i, 2) + Cells(i, 1)
  8.     Next
  9.     Application.EnableEvents = True                    ''啟動: 觸發事件
  10. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

        靜思自在 : 有心就有福,有願就有力,自造福田,自得福緣。
返回列表 上一主題