| 索 引 | H0054 |
| 主 題 | OnTime 方法傳遞參數的方法 |
| 版 本 | >= 9.0(Office 2000) |
| 說 明 | OnTime 方法中的 Procedure 語法在Excel內建的說明並沒有提到如何使用參數,但是實際上它是可以使用參數的,請看內文說明 |
| 參 考 |
說明:OnTime 方法 中的 Procedure 語法傳遞參數的方法:
.OnTime [EarliestTime]、[["]['][合法的巨集名稱(Sub)][參數][,][參數1][,][參數2][,]….
[']["]]、...
範例一:
Sub MySchedule()
'5秒後調用GetArgSample程序
Application.OnTime Now + TimeValue("00:00:05"), "'GetArgSample""小計為:"",123'"
End Sub
Sub GetArgSample(Arg As String, Arg1 As Integer)
MsgBox Arg & Arg1 * 30
End Sub
Popularity: 7%


分享個人Excel VBA 學習經驗,架站心得, 日常生活記事等...











Proudly powered by
原來會被默認為數值而非字串
多謝版主費心教導
謝謝!
你好:
再加一句判斷是否為數值或文字即可
Private Sub Workbook_Open()
With Sheet1
For Each a In .Range(.[A2], [A65536].End(xlUp))
mytime = a + a.Offset(, 1)
t = a.Offset(, 2)
If VBA.IsNumeric(t) Then
mystr = "'Meeting " & t & "'"
Else
mystr = "'Meeting " & Chr(34) & t & Chr(34) & "'"
End If
Application.OnTime Now + TimeValue("00:00:05"), mystr
Next
End With
End Sub
版主您好
謝謝您的回應
但我依照您的方法還是出現同樣錯誤
是因為a.Offset(, 2)的值為文字的關係嗎?
我能附上檔案給您參考嗎?
我該如何將檔案附上給您參考呢?
謝謝您!
你好:
你試試看
Private Sub Workbook_Open()
With Sheet1
For Each a In .Range(.[A2], [A65536].End(xlUp))
mytime = a + a.Offset(, 1)
mystr = "'Meeting" & a.Offset(, 2) & "'"
Application.OnTime mytime, mystr
Next
End With
End Sub
版主您好
我在sheet1
a欄為日期,b欄為時間,C欄為訊息文字
我想在檔案開啟時加入各個行事曆提醒
我在open事件
Private Sub Workbook_Open()
With Sheet1
For Each a In .Range(.[A2], [A65536].End(xlUp))
mytime = a + a.Offset(, 1)
mystr = """'Meeting""""" & a.Offset(, 2) & "'"""
Application.OnTime mytime, mystr
Next
End With
End Sub
在一般模組寫入程序
Sub Meeting(msg As String)
MsgBox msg
End Sub
但open程序即出現找不到該程序的錯誤訊息
還請版主撥冗解惑
謝謝!
可以把你完整的程式碼貼上來嗎
請教版主:
如果引數要加入變數是否可行
如
Sub MySchedule()
'5秒後調用GetArgSample程序
參數1="小計為:"
參數2=123
Application.OnTime Now + TimeValue("00:00:05"), 此處的程序應如何呼叫
End Sub
我把程序名&參數1&參數2串成另一變數代入
結果會找不到該程序
還請版主賜教
謝謝