想利用DDE觸發來執行特定整點時間前後五秒的每筆記錄
如紅色所敘述。
Private Sub Worksheet_Calculate()
On Error Resume Next
C = Sheets("即時指數").Cells(3, 7)
If o = 0 Then o = C執行
If C > h Then h = C
If C < l Then l = C
Application.Run "期貨計算A02.xls!printing_value"
Application.Run "期貨計算A02.xls!sixtyK"
End Sub
=======================================
Sub printing_value()
Dim printime, rtest, stest As Integer
printime = Sheets("即時指數").Range("C3")
rtest = Sheets("波段").[r65536].End(xlUp).Row
stest = Sheets("波段").[S65536].End(xlUp).Row
If printime >= 94455 Then'出現錯誤訊息,按下偵錯,這裡出現反白,請問哪裡有錯誤?
rtest = Sheets("即時指數").Range("c3") '成交價時間位置測試
stest = Sheets("即時指數").Range("g3") '成交價時間位置測試
If Sheets("即時指數").Range("C3") >= 94505 Then Exit Sub
End If
If printime >= 104455 Then
rtest = Sheets("即時指數").Range("c3") '成交價時間位置測試
stest = Sheets("即時指數").Range("g3") '成交價時間位置測試
If Sheets("即時指數").Range("C3") >= 104505 Then Exit Sub
End If
If printime >= 114455 Then
rtest = Sheets("即時指數").Range("c3") '成交價時間位置測試
stest = Sheets("即時指數").Range("g3") '成交價時間位置測試
If Sheets("即時指數").Range("C3") >= 114505 Then Exit Sub
End If
If printime >= 124455 Then
rtest = Sheets("即時指數").Range("c3") '成交價時間位置測試
stest = Sheets("即時指數").Range("g3") '成交價時間位置測試
If Sheets("即時指數").Range("C3") >= 124505 Then Exit Sub
End If
End Sub
謝謝各位大大耐心看,謝謝指導!作者: barrykuo 時間: 2014-7-5 13:32
不好意思,原來在需要執行的程序前加上[On Error Resume Next],就不會出現錯誤訊息
Sub printing_value()
On Error Resume Next
只是不知道錯誤是什麼?作者: c_c_lai 時間: 2014-7-5 15:15
回復 3#c_c_lai
回c_c_lai大大,抱歉忘記貼上昨天改正的地方,如下:
Sub printing_value()
Dim printime, rtest, stest
printime = Sheets("即時指數").Range("C3")
rtest = Sheets("波段").[r65536].End(xlUp).Row
stest = Sheets("波段").[S65536].End(xlUp).Row
On Error Resume Next
If printime > 94455 Then
Sheets("波段").Cells(rtest, 18) = Sheets("即時指數").Range("c3") '成交價時間位置測試
Sheets("波段").Cells(stest, 19) = Sheets("即時指數").Range("g3") '成交價時間位置測試
If printime > 94505 Then Exit Sub
End If
If printime > 104455 Then
Sheets("波段").Cells(rtest, 18) = Sheets("即時指數").Range("c3") '成交價時間位置測試
Sheets("波段").Cells(stest, 19) = Sheets("即時指數").Range("g3") '成交價時間位置測試
If printime > 104505 Then Exit Sub
End If
If printime > 114455 Then
Sheets("波段").Cells(rtest, 18) = Sheets("即時指數").Range("c3") '成交價時間位置測試
Sheets("波段").Cells(stest, 19) = Sheets("即時指數").Range("g3") '成交價時間位置測試
If printime > 114505 Then Exit Sub
End If
If printime > 124455 Then
Sheets("波段").Cells(rtest, 18) = Sheets("即時指數").Range("c3") '成交價時間位置測試
Sheets("波段").Cells(stest, 19) = Sheets("即時指數").Range("g3") '成交價時間位置測試
If printime > 124505 Then Exit Sub
End If
End Sub
================================================================
周一再來測試看。謝謝您耐心看完!作者: GBKEE 時間: 2014-7-5 15:51
回復 5#GBKEE
GBKEE大大您好,
如果把您給的程序在宣告加上As Double,"aa"改成94456或是94454,再執行程序,就沒有再出現錯誤訊息。
Sub Ex()
Dim printime As Double
Sheets(1).Range("C3") = "94400" '如果 沒有這公式->錯誤值
printime = Sheets(1).Range("C3")
If printime >= 94455 Then '出現錯誤訊息,按下偵錯,這裡出現反白,請問哪裡有錯誤?
End If
End Sub
所以正確宣告很重要,請問儲存格C3是日期格式2014/07/07,這樣假如是寫:
a=Sheets(1).Range("C3")
請問a要宣告為什麼?也是Double嘛?作者: GBKEE 時間: 2014-7-6 13:59