標題:
[發問]
自動運算的寫法
[打印本頁]
作者:
owen06
時間:
2013-7-25 09:37
標題:
自動運算的寫法
請問一下,我想要讓工作表A1跟B1輸入數字,C1就可以自動運算,
我用一般的巨集去執行是OK的,
For i = 1 To 10
Cells(i, 3) = Cells(i, 2) + Cells(i, 1)
Next
可是如果用『CHANGE』就會變成無限迴圈,一直脫離不了,
用DO UNTIL也一樣死在那邊,
請問在『CHANGE』下,該怎麼寫才不會陷入無限迴圈?謝謝~~~
作者:
GBKEE
時間:
2013-7-25 11:12
回復
1#
owen06
Option Explicit
'EnableEvents 屬性 如果指定物件能觸發事件,則本屬性為 True。讀/寫 Boolea
'物件能觸發事件 -> 啟動物件的預設程序
Private Sub Worksheet_Change(ByVal Target As Range) 'Worksheet_Change 工作表儲存格有修改的預設程序
Application.EnableEvents = False '停止: 觸發事件
For i = 1 To 10
Cells(i, 3) = Cells(i, 2) + Cells(i, 1)
Next
Application.EnableEvents = True ''啟動: 觸發事件
End Sub
複製代碼
作者:
owen06
時間:
2013-7-25 11:57
回復
2#
GBKEE
版主你好,我複製代碼去執行,在a1輸入數字會出現”變數未定義”,
請問是哪邊有問題呢?謝謝~
作者:
c_c_lai
時間:
2013-7-25 12:31
回復
3#
owen06
加上 Dim i As Integer 就 OK 了!
Option Explicit
'EnableEvents 屬性 如果指定物件能觸發事件,則本屬性為 True。讀/寫 Boolea
'物件能觸發事件 -> 啟動物件的預設程序
Private Sub Worksheet_Change(ByVal Target As Range) 'Worksheet_Change 工作表儲存格有修改的預設程序
Dim i As Integer
Application.EnableEvents = False '停止: 觸發事件
For i = 1 To 10
Cells(i, 3) = Cells(i, 2) + Cells(i, 1)
Next
Application.EnableEvents = True ''啟動: 觸發事件
End Sub
複製代碼
作者:
handsometrowa
時間:
2013-7-25 12:41
回復
3#
owen06
你的程式碼最開始有下面這條陳述式
Option Explicit
語法
Option Explicit
請注意
Option Explicit 陳述式必出現在模組�堙A且在任何程序之前。
當 Option Explicit 在模組中使用時,必須以 Dim, Private、Public、ReDim 或 Static 陳述式來明確宣告所有的變數。如果使用未宣告的變數名稱,則在編譯階段時,會發生錯誤。
如果未使用 Option Explicit 陳述式,則所有未宣告的變數都是 Variant 型態,除非預設的型態另以 Deftype 陳述式所指定過。
附註 Option Explicit 可避免打錯變數名稱或在有效範圍內相同的變數名稱。
作者:
owen06
時間:
2013-7-25 12:51
感謝以上各位的指導,對於我這個剛買書來學的老頭子來說,真是獲益良多。
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)