Board logo

標題: 呼叫副程式,失敗 [打印本頁]

作者: cji3cj6xu6    時間: 2015-3-10 14:43     標題: 呼叫副程式,失敗

Dear All,

請問,當我加入   Call sub3(4) 這行指令前,動作很正常,但加入後,
發現sub1 有執行,sub2 卻沒有動作,就直接執行sub3了,不曉得哪裡出了問題。

謝謝∼

Sub File_Copy()

    Windows("table.csv").Activate
    Range("A1:f3000").Select
    Selection.Copy
    Windows("tablex.xlsm").Activate
    Sheets(1).Select
    Range("A1").Select
    ActiveSheet.Paste
   
    Application.OnTime Now + TimeValue("00:00:2"), "sub1"
    Application.OnTime Now + TimeValue("00:00:2"), "sub2"
    Call sub3(4)
   
End Sub
作者: GBKEE    時間: 2015-3-10 15:37

回復 1# cji3cj6xu6
測試看看
  1. Sub Ex()
  2.     Application.OnTime Now + TimeValue("00:00:2"), "sub1"
  3.     Application.OnTime Now + TimeValue("00:00:2"), "sub2"  '這會先執行
  4. End Sub
  5. Sub Sub1()
  6.     MsgBox "Sub1"
  7. End Sub
  8. Sub Sub2()
  9.     MsgBox "Sub2"
  10. End Sub
複製代碼

作者: cji3cj6xu6    時間: 2015-3-10 15:43

謝謝g大,
但是我想要接著執行sub3(4)
還是要
Application.OnTime Now + TimeValue("00:00:2"), "sub3(4)"
但,這樣的寫法,語法有錯∼
作者: GBKEE    時間: 2015-3-10 15:52

本帖最後由 GBKEE 於 2015-3-10 15:54 編輯

回復 3# cji3cj6xu6
不要複雜化
  1. Sub Ex()
  2.     Application.OnTime Now + TimeValue("00:00:2"), "sub_ALL"
  3. End Sub
  4. Sub Sub_ALL()
  5.     Sub1
  6.     Sub2
  7.     Sub3(4)
  8. End Sub
複製代碼

作者: cji3cj6xu6    時間: 2015-3-10 15:58

Ha Ha Ha 原來還有這招,謝謝g大提供∼
作者: cji3cj6xu6    時間: 2015-3-12 14:59

想再請教一下,當傳回的資料是兩筆以上可行嗎?這裡要如何修改呢?
謝謝∼

sub3(4, XYz)

XYz = Cdate("3/12")

end sub
作者: GBKEE    時間: 2015-3-13 05:50

回復 6# cji3cj6xu6
不正確語法 , 程序要接收的參數須是變數
  1. Sub sub3(xy, XYz)
  2.     XYz = CDate("3/12")
  3. End Sub
複製代碼

作者: cji3cj6xu6    時間: 2015-3-13 09:29

先前用  sub3(4, XYz)  直接執行,出現編譯錯誤,一直搞不定。
看到g大的語法,與我的蠻接近的,還是想不通。
剛再到網路上搜尋一次,應該是我問錯方向了。
正解是:
call sub3(4, XYz)
好像這樣就可以正常工作了。
Thanks.




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)