Board logo

標題: [發問] EXCEL VBA語法疑問 [打印本頁]

作者: southwind1009    時間: 2017-5-16 21:10     標題: EXCEL VBA語法疑問

請問各位高手,能否幫忙檢查這個VBA語法哪裡有錯,為何就是無法開始自動記錄呢???謝謝大大
[attach]27188[/attach]
[attach]27189[/attach]


Public uMode&, StartTime, EndTime
  Public MyBook As Workbook, Sht1 As Worksheet, Sht2 As Worksheet, xRow&
  
  Sub 工作表4共用參照()
  
  Set MyBook = ThisWorkbook
  Set Sht1 = MyBook.Sheets("工作表4")  '指定活頁名稱(工作表4)
  
  StartTime = "08:44:01" '開盤時間(提早60秒啟動記錄)
  EndTime = "23:45:05"   '收盤時間(延後5 秒停止記錄)
   
  End Sub
  Sub 工作表4自動記錄()
  If uMode = 0 Then Exit Sub
  
  If Time > TimeValue(EndTime) Then
  Sht1.[Q2] = "已過收盤"   '狀態顯示(記錄在Q2)
  uMode = 0
  Exit Sub
  End If
  
  Sht1.Range("C2") = Time '券商時間(記錄在C2)  第2列為DDE連結
  '----------------------------------------------------------
  If Second(Time) = 0 And Minute(Time) Mod 1 = 0 Then
  
  xRow = Sht1.Range("B65536").End(xlUp).Row + 1

  If xRow < 4 Then xRow = 4  '從第4列開始 逐次加1列紀錄
  
  Sht1.Range("C" & xRow & ":E" & xRow).Value = Sht1.Range("C2:E2").Value  'C~E 是我DDE的位置(記錄第2列)
'------------------------------------------------
  ThisWorkbook.Save
  Beep
  End If
  Application.OnTime Now + TimeValue("00:00:01"), "工作表4自動記錄" '每一秒遞迴一次
  End Sub
  Sub 工作表4開始執行()
  If uMode = 1 Then Exit Sub
  Call 工作表4共用參照
  uMode = 1
  Sht1.[Q2] = "執行中"   '狀態顯示(記錄在Q2)
  Call 工作表4自動記錄
  End Sub
  Sub 工作表4停止執行()
  uMode = 0
  Call 工作表4共用參照
  Sht1.[Q2] = "STOP"    '狀態顯示(記錄在Q2)
  End Sub
  Sub 工作表4清除記錄()     '我已經改自動執行 所以這個警示框取消了
  'Beep
  'If MsgBox("※確定要清除〔工作表4〕的數據嗎? ", 4 + 32 + 256) = vbNo Then Exit Sub
  Call 工作表4共用參照
  Sht1.Rows("4:65536").ClearContents   '開盤前清除4列(含)以下全部資料
  If ActiveSheet.Name = Sht1.Name Then ActiveWindow.ScrollRow = 1
  Beep
  End Sub
作者: luckdavid    時間: 2019-1-17 16:21

大大您好,請問您有找到答案了嗎? 我也遇到相同的問題

回復 1# southwind1009
作者: fei6999    時間: 2019-2-10 12:19

檔案傳上來看看
作者: sanwu    時間: 2019-11-30 20:15

我看到的通通是函數,這個VBA是在那個事件下啟動........沒看到啟動的事件




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