返回列表 上一主題 發帖

請問版上對change事件很熟的大大

請問版上對change事件很熟的大大

本帖最後由 藍天麗池 於 2013-7-12 11:11 編輯

Private Sub Worksheet_Change(ByVal Target As Range)
'Application.EnableEvents = False

If Not Intersect(Target, [E1:G50000]) Is Nothing Then Exit Sub
Range("H" & Target.Row).Formula = "=RC[-1]+RC[-2]"

'Application.EnableEvents = True
End Sub

執行上述的程式會出現錯誤28 堆疊空間不足

如果要將上述程式改成E到G欄有變動才變動,其他欄變動則不執行要怎麼改,求教板上大大

回復 1# 藍天麗池
H欄可以預先填好公式,不須另外寫VBA處理。

TOP

回復 2# stillfish00


    大大,就是不行所以才用VBA的發方式阿

TOP

本帖最後由 GBKEE 於 2013-7-13 07:54 編輯

回復 1# 藍天麗池
拿掉註解
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2.     Application.EnableEvents = False
  3.     If Not Intersect(Target, [E1:G50000]) Is Nothing Then
  4.         Application.EnableEvents = True   '回復:物件能觸發事件
  5.         Exit Sub
  6.     End If
  7.     Range("H" & Target.Row).Formula = "=RC[-1]+RC[-2]"
  8.     Application.EnableEvents = True
  9. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

本帖最後由 stillfish00 於 2013-7-12 18:23 編輯

回復 3# 藍天麗池
公式不行的原因是?
手動輸入值公式也不會跟著運算嗎?
有沒有檢查過公式自動運算是否改成了手動?

我只是好奇怎麼做到你說的這種狀況,因為code裡面也是去改公式而已。
然後你程式的判斷和中文敘述的相反了

TOP

回復 4# GBKEE


    G大,拿掉註解就,其他儲存格變動還是會計算,能改成E到G欄變動才變動,其他欄變動則不變動嗎??

TOP

回復 5# stillfish00


    那如果以我中文的意思這程式要怎麼改??

TOP

回復 6# 藍天麗池
  1. Option Explicit
  2. Private Sub Worksheet_Change(ByVal Target As Range)
  3.     Application.EnableEvents = False
  4.     If Not Intersect(Target, [E1:E50000]) Is Nothing Or Not Intersect(Target, [G1:G50000]) Is Nothing Then
  5.         Range("H" & Target.Row).Formula = "=RC[-1]+RC[-2]"
  6.     End If
  7.     Application.EnableEvents = True
  8. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 8# GBKEE


    G大感謝你,測試已經可以用了,感謝

TOP

回復 8# GBKEE


    G大,再跟你請教一個問題
    Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    If Not Intersect(Target, [E1:E50000]) Is Nothing Or Not Intersect(Target, [G1:G50000]) Is Nothing Then
        Range("H" & Target.Row).Formula = "=RC[-1]+RC[-2]"
    End If
    Application.EnableEvents = True
End Sub

如果以上程式,在H欄部分我要他在儲存格計算完之後寫入的是值,而不是公式,請問一下G大程式要怎麼改,麻煩你了

TOP

        靜思自在 : 人的眼睛長在前面,只看到別人的缺點,絲毫看不到自己的缺點。
返回列表 上一主題