0
我有一個VBA加載項,它應該爲多個工作表添加功能。我有一個類來監聽工作表事件並觸發宏。這工作,但我似乎無法用它的參數調用私有宏。使用參數調用私有VBA子例程
我的事件監聽器是在類模塊是這樣的:
Option Explicit
Private WithEvents App As Application
Private Sub Class_Initialize()
Set App = Application
End Sub
Private Sub App_SheetChange(ByVal Sh As Object, ByVal Source As Range)
On Error GoTo Finish
App.EnableEvents = False
Call Application.Run("Worksheet_Change", "Source")
Finish:
App.EnableEvents = True
End Sub
它是在一個模塊中,像這樣打開工作簿初始化:
Sub Auto_Open()
Set clsAppEvents = New clsApplicationEvents
End Sub
和我想要的宏調用是在一個單獨的模塊中,並採取以下形式:
Private Sub Worksheet_Change(ByVal Target As Range)
'Do some work on range
End Sub
我試過以下方法c阿靈宏觀和至今沒有工作過:
Call Application.Run("Worksheet_Change", "Source")
Application.Run "Worksheet_Change", "Source"
Application.Run "Worksheet_Change" "Source"
這將有助於包括您在嘗試此操作時遇到的錯誤。無論如何,最明顯的問題似乎是你將'Source'作爲一個字符串而不是Range對象傳遞。嘗試在呼叫運行時刪除源文件中的引號。 –
我沒有錯誤信息,宏只是沒有運行,但刪除了像這樣的引號:Application.Run「Worksheet_Change」,來源 - 做了伎倆。如果你想作出回答,我會將其標記爲已解決。謝謝 – db579