2011-01-25 42 views
0

讓我先說我對VB非常陌生......如何在特定單元格中的值更改時運行宏?

我試圖在某個單元格中的值發生變化時運行宏。我已經閱讀了如何做到這一點,但似乎無法讓它工作。我已將以下代碼輸入到工作表對象的專用模塊中:

Private Sub Worksheet_Change(ByVal Target As Range) 

    If Not Intersect(Target, Target.Worksheet.Range("$C$5")) Is Nothing Then 

     Application.Run _ 

      "'Amex Payments_Experiment.xlsm'!SelectCells" 

    End If  

End Sub 

C5是我試圖監視更改的單元。 「SelectCells」是我想要運行的宏。 「Amex Payments_Experiment.xlsm」是文件的名稱。

當我更改C5中的值時,什麼都不會發生。一些幫助會很好。謝謝!


UPDATE:

Cyber​​kiwi - 不,這不正是我是怎麼做到的,但是當我跟你說明我確實覺得,你說的應該是代碼。要訪問工作表對象的專用模塊,我右鍵單擊底部的工作表選項卡,選擇「查看代碼」,然後從頁面頂部中心的下拉列表中選擇「工作表」。

User587834 - 是的。宏的啓用。

其他建議?

回答

0

我已經進入下面的代碼到工作表對象的私有模塊:

究竟你是如何做到這一點?如下?

  • 的Alt-F11切換到代碼視圖
  • 在左邊,目標板
  • 在右側雙擊,你看到你輸入的代碼?如果不是,則進入下一個步驟
  • 粘貼代碼塊
1
如果使用Excel2007中確保啓用宏

,默認情況下Excel 2007中禁用了新的工作簿宏執行。 爲了嘗試執行任何其他宏以確保啓用了宏。

0

此代碼的工作好了,我

Private Sub Worksheet_Change(ByVal Target As Range) 
    If Not Intersect(Target, Target.Worksheet.Range("$C$5")) Is Nothing Then 
     MsgBox "hello" 
    End If 
End Sub 

也許問題是與你的Application.Run: - 選擇線路包含相交,然後點擊F9對調試開關,然後嘗試更改單元格來查看如果你到達分部。 如果你永遠達不到的線,那麼你還沒有拿到工作clkass模塊中的代碼,或者您已經關閉的事件,或宏被禁用或...

0

檢查Application.EnableEvents屬性,並將其設置爲True如果需要。

相關問題