返回列表 上一主題 發帖

[發問] EXCEL VBA語法疑問

[發問] EXCEL VBA語法疑問

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




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

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

TOP

檔案傳上來看看

TOP

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

回復 1# southwind1009

TOP

        靜思自在 : 君子如水,隨方就圓,無處不自在。
返回列表 上一主題