返回列表 上一主題 發帖

[發問] 發問 : 如何設定能在規定的時間紀錄資料

回復 2# HenryWang123
  
我是會定時讓資料往下copy啦,可是瑞凡~~~我停不下來呀~~~有沒有其他高手能教一下怎麼設定退場機制,讓他能在預定的時間過後,就不再copy了。
Application.OnTime t2, "AutoCopy",,false   這個語法一直不知道該怎麼應用。

   在thisworkbook裡貼上
  1. Private Sub Workbook_Open()
  2. T = #10:58:00 AM#
  3. Application.OnTime T, "AutoCopy"
  4. End Sub
複製代碼
然後新增模組,再貼上
  1. Sub AutoCopy()
  2. t2 = Now + TimeSerial(0, 2, 0)
  3. Sheet1.[b8:i10].Copy
  4. Sheet1.[b65536].End(3).Offset(1, 0).Select
  5. If Sheet1.[b13] = "" Then Sheet1.[b13].Select
  6. Selection.PasteSpecial xlPasteValues
  7. Application.OnTime t2, "AutoCopy"
  8. End Sub
複製代碼

TOP

回復 4# GBKEE


    原來在application.ontime前面設定個IF執行條件就行了!感謝GKBEE版主一語點醒夢中人~~~
    謝謝版主大大~

TOP

回復 7# HenryWang123


    應該是找不到sheet1的關係,你把裡面的sheet1都改成sheets("xxx")應該就行了。(xxx為工作表名稱)
    我使用sheet1是因為沒有你的檔案,所以只能用自己使用的情境下去設定,
    因此你在不同的情況下,就會出現錯誤,你必需要自己去修改工作表名稱這個部份才可以。

TOP

回復 9# HenryWang123


在AutoCopy那個模組裡的最後一行
本來是:Application.OnTime t2, "AutoCopy"
把他改成:If Time <= #1:30:00 PM# Then Application.OnTime t2, "AutoCopy"
就行了。

TOP

回復 12# HenryWang123


    請問方便附個檔案來看看嗎?

TOP

回復 12# HenryWang123


    我想你應該是停留在sheet1,但是指令卻命令他要去sheet2越區辦案,
    所以他就抗命囉。
    你如果是都只要copy同一個資料,但是到不同工作表,我是建議你修改成這樣,
    用一個模組就好了,另一個取消掉。
    如果有其他問題,再提出來一起討論吧。
  1. Sub AutoCopy()
  2. t2 = Now + TimeSerial(0, 1, 0)
  3. Application.Calculation = xlAutomatic
  4. Sheets("sheet1").Select
  5. Sheets("Sheet1").[a9:j11].Copy
  6. Sheets("Sheet1").[b65536].End(3).Offset(1, 0).Select
  7. If Sheets("Sheet1").[b13] = "" Then Sheets("Sheet1").[b13].Select
  8. Selection.PasteSpecial xlPasteValues
  9. Sheets("sheet2").Select
  10. Sheets("Sheet2").[b65536].End(3).Offset(1, 0).Select
  11. If Sheets("Sheet2").[b13] = "" Then Sheets("Sheet2").[b13].Select
  12. Selection.PasteSpecial xlPasteValues
  13. If Time <= #13:45:00 PM# Then Application.OnTime t2, "AutoCopy"
  14. End Sub
複製代碼

TOP

        靜思自在 : 人事的艱難與琢磨,就是一種考驗。
返回列表 上一主題