[英]Excel VBA reference issues
我在網上跟蹤了一些示例,其中我試圖將值從一個子傳遞到VBA中的另一個子中,但出現錯誤:
編譯錯誤:過程聲明與具有相同名稱的事件或過程的描述不匹配。
Sub next_sat_click()
Dim iweekday As Integer
Dim nextsat As String
Dim index As Integer
Dim str_game_date As String
iweekday = weekday(Now(), vbSunday)
nextsat = Format((Now + 7 - iweekday), "mm-dd-yy")
Call set_button_Click(nextsat)
End Sub
Sub set_button_Click(ByRef nextsat As String)
......
End Sub
更改子名稱,如SetButtonOnClick。
如果您有一個具有相同名稱的按鈕,則excel會將_Click關鍵字保留給按鈕上的Click事件。
您不能更改事件處理程序的參數(參數名稱除外)。 這也意味着如果不需要任何參數,則無法添加任何參數。 甚至不是Optional ByRef nextsat As String
也可以工作。
有三種方法可以在UserForm中的事件處理程序之間傳遞值:
UserForm.tag
屬性(建議使用簡單值,例如字符串)。 如果已經永久使用,顯然不能使用; 我使用了第二種方法:
Sub next_sat_click()
Dim iweekday As Integer
Dim nextsat As String
Dim index As Integer
Dim str_game_date As String
iweekday = Weekday(Now(), vbSunday)
nextsat = Format((Now + 7 - iweekday), "mm-dd-yy")
Me.Tag = nextsat
End Sub
Sub set_button_Click()
Dim nextsat As String
nextsat = Me.Tag
......
End Sub
在您的情況下,更好的解決方案可能是有一個可見的 TextBox,當用戶單擊next_sat
時,您可以在其中存儲計算出的日期,以便用戶可以看到它。 然后在set_button
處理程序中,從TextBox.Text
獲取它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.