請問高手要將以下DDE 每分鐘記錄改為30秒自動記錄一次要怎改
- 帖子
- 48
- 主題
- 14
- 精華
- 0
- 積分
- 62
- 點名
- 0
- 作業系統
- win7
- 軟體版本
- office2003
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2012-5-25
- 最後登錄
- 2022-4-23
|
請問高手要將以下DDE 每分鐘記錄改為30秒自動記錄一次要怎改
我對VBA都不懂在網上找好久找到一個比較接近我要的範例
可是他是每分鐘記錄一次
可以請高手幫我改每30秒就記錄一次嗎
也謝謝這位提供範例的網友
Option Explicit
Dim LastMin As Integer
Private Sub Workbook_Open()
Sheets("策略記錄").Cells(4, 2) = 10
LastMin = Minute(Time)
Call Timer
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Application.OnTime Now + TimeValue("00:00:01"), "ThisWorkbook.Timer", , False
End Sub
Public Sub Timer()
Dim Pos As Integer, i As Integer, RangeStr As String
On Error Resume Next
Application.OnTime Now + TimeValue("00:00:01"), "ThisWorkbook.Timer" '每秒顯示
Sheets("策略記錄").Cells(3, 2) = Time '將時間show至策略的b3欄位
Dim HHMM As Integer
HHMM = Hour(Time) * 100 + Minute(Time)
If (HHMM < 845 Or HHMM > 1345) Then Exit Sub '營業時間才執行
If Minute(Time) <> LastMin Then '開始後做
With Sheets("策略記錄")
.Cells(4, 2) = .Cells(4, 2) + 1 '將變動行號加一行
Pos = .Cells(4, 2)
.Cells(Pos, 1) = Time
.Cells(Pos, 2) = .Cells(2, 2)
.Cells(Pos, 3) = .Cells(2, 3)
.Cells(Pos, 4) = .Cells(2, 4)
.Cells(Pos, 5) = .Cells(2, 5)
.Cells(Pos, 6) = .Cells(2, 6)
.Cells(Pos, 7) = .Cells(2, 7)
.Cells(Pos, 8) = .Cells(2, 8)
.Cells(Pos, 9) = .Cells(2, 9)
.Cells(Pos, 10) = .Cells(2, 10)
End With
LastMin = Minute(Time)
End If
End Sub |
|
|
|
|
|
|
- 帖子
- 13
- 主題
- 0
- 精華
- 0
- 積分
- 13
- 點名
- 0
- 作業系統
- win7
- 軟體版本
- pro
- 閱讀權限
- 10
- 註冊時間
- 2015-8-1
- 最後登錄
- 2018-4-6
|
132#
發表於 2017-12-5 18:27
| 只看該作者
回復 131# fei6999
去裝元大RTD; 它的範例檔就有; 只要有RTD(可把它看成DDE), 再來就是程式的問題了 |
|
|
|
|
|
|
- 帖子
- 41
- 主題
- 8
- 精華
- 0
- 積分
- 79
- 點名
- 0
- 作業系統
- XP
- 軟體版本
- OFFICE 2003
- 閱讀權限
- 20
- 註冊時間
- 2011-3-8
- 最後登錄
- 2022-4-16
|
131#
發表於 2016-7-10 02:04
| 只看該作者
回復 130# mlc994800
元大dde都有提供範例!漲跌家數應該有才對
|
|
|
|
|
|
|
- 帖子
- 1
- 主題
- 0
- 精華
- 0
- 積分
- 1
- 點名
- 0
- 作業系統
- WIN7
- 軟體版本
- OFFICE2010
- 閱讀權限
- 10
- 註冊時間
- 2016-7-8
- 最後登錄
- 2016-8-19

|
130#
發表於 2016-7-9 19:30
| 只看該作者
想請問如果想要一開盤就先把昨天每30秒記錄的資料移除,應該要再補上怎樣的程式碼呢??
另外,想請問一下,有些想知道的資訊如果證卷商沒有那個品項的代碼是不是就無法取得呢?
譬如:大盤的漲跌家數..etc. |
|
|
|
|
|
|
- 帖子
- 2
- 主題
- 1
- 精華
- 0
- 積分
- 3
- 點名
- 0
- 作業系統
- WINDOWS7
- 軟體版本
- 64
- 閱讀權限
- 10
- 性別
- 男
- 註冊時間
- 2016-6-25
- 最後登錄
- 2016-10-14
|
129#
發表於 2016-6-25 20:30
| 只看該作者
|
小翁
|
|
|
|
|
- 帖子
- 2035
- 主題
- 24
- 精華
- 0
- 積分
- 2031
- 點名
- 0
- 作業系統
- Win7
- 軟體版本
- Office2010
- 閱讀權限
- 100
- 性別
- 男
- 註冊時間
- 2012-3-22
- 最後登錄
- 2024-2-1
|
128#
發表於 2016-6-24 18:55
| 只看該作者
回復 127# areskevin - Option Explicit
- Dim LastMin As String
- Private Sub Workbook_Open()
- LastMin = "00:01:00"
- Call Timer
- End Sub
- Private Sub Workbook_BeforeClose(Cancel As Boolean)
- On Error Resume Next
- Application.OnTime Now + TimeValue("00:00:01"), "ThisWorkbook.Timer", , False
- End Sub
- Public Sub Timer()
- Dim Pos As Long, HHMM As Integer, col As Variant
-
- With Sheets("每分記錄")
- HHMM = Hour(Now) * 100 + Minute(Now)
- If (HHMM < 900 Or HHMM > 1333) Then Exit Sub
-
- .Cells(2, 4) = Now
- Set col = Range(.Range("A5"), .Cells(5, .[A4].End(xlToRight).Column)).Find(Format(.Cells(2, 4), "M/D"), LookIn:=xlValues, LookAt:=xlWhole)
- Pos = .Cells(Rows.Count, col.Column - 1).End(xlUp).Row + 1 ' 均以其相對應之當日 (col) 為基準 (Pos = 6 : Long)
- ' Pos = .Range("A" & Rows.Count).End(xlUp).Row + 1
- .Cells(Pos, col.Column - 1) = Format(.Cells(2, 4), "HH:MM:SS")
- .Cells(Pos, col.Column) = .Cells(2, 2)
- .Cells(Pos, col.Column + 1) = .Cells(2, 3)
- End With
-
- Application.OnTime Now + TimeValue(LastMin), "ThisWorkbook.Timer"
- ' Application.OnTime Now + TimeValue("00:01:00"), "ThisWorkbook.Timer"
- End Sub
複製代碼 收收 Mail!
|
|
|
|
|
|
|
- 帖子
- 3
- 主題
- 0
- 精華
- 0
- 積分
- 2
- 點名
- 0
- 作業系統
- W10
- 軟體版本
- OFFICE2010
- 閱讀權限
- 10
- 註冊時間
- 2016-6-21
- 最後登錄
- 2016-6-30
|
127#
發表於 2016-6-24 12:38
| 只看該作者
回復 126# c_c_lai
c_c_lai大您好^^
剛剛嘗試了一下
把程序加入
還是無法跳動
請問如果相同語法寫入在2013的excel也可以嗎?
另外因為我無法下載附件,
能否麻煩您把附件寄送給我呢?
hsuhsuan1985@gmail.com
希望有朝一日能跟c_c_lai大一樣
能回復他人的問題
萬分感謝 |
|
|
|
|
|
|
- 帖子
- 2035
- 主題
- 24
- 精華
- 0
- 積分
- 2031
- 點名
- 0
- 作業系統
- Win7
- 軟體版本
- Office2010
- 閱讀權限
- 100
- 性別
- 男
- 註冊時間
- 2012-3-22
- 最後登錄
- 2024-2-1
|
126#
發表於 2016-6-22 07:21
| 只看該作者
|
|
|
|
|
|
- 帖子
- 2035
- 主題
- 24
- 精華
- 0
- 積分
- 2031
- 點名
- 0
- 作業系統
- Win7
- 軟體版本
- Office2010
- 閱讀權限
- 100
- 性別
- 男
- 註冊時間
- 2012-3-22
- 最後登錄
- 2024-2-1
|
125#
發表於 2016-6-22 07:15
| 只看該作者
回復 120# areskevin
為了讓你能實際瞭解 "每分記錄" 的實務撰寫,
做了此應用範例,提供你得以全盤明瞭
如何去實際控制每月每日的真實操盤紀錄寫入
並再你原本的構想而整理出來之程式實際
應用範例,希望你藉此能舉一反三加以發揮。
- Public Sub Timer()
- Dim Pos As Long, HHMM As Integer, col As Variant
-
- With Sheets("每分記錄")
- HHMM = Hour(Now) * 100 + Minute(Now)
- If (HHMM < 900 Or HHMM > 1333) Then Exit Sub
-
- .Cells(2, 4) = Now
- ' Set col = Range(.Range("A5"), .Cells(5, .[A5].End(xlToRight).Column)).Find(Format(.Cells(2, 4), "M/D"), LookIn:=xlValues, LookAt:=xlWhole)
- ' Sheets("每分記錄").[A4].End(xlToRight).Column = 15 : Variant/Long
- ' Sheets("每分記錄").[A5].End(xlToRight).Column = 2 : Variant/Long (合併儲存格易造成 End(xlToRight).Column 判斷錯誤)
- Set col = Range(.Range("A5"), .Cells(5, .[A4].End(xlToRight).Column)).Find(Format(.Cells(2, 4), "M/D"), LookIn:=xlValues, LookAt:=xlWhole)
- Pos = .Cells(Rows.Count, col.Column - 1).End(xlUp).Row + 1 ' 均以其相對應之當日 (col) 為基準
- ' Pos = .Range("A" & Rows.Count).End(xlUp).Row + 1
- .Cells(Pos, col.Column - 1) = Format(.Cells(2, 4), "HH:MM:SS")
- .Cells(Pos, col.Column) = .Cells(2, 2)
- .Cells(Pos, col.Column + 1) = .Cells(2, 3)
- End With
-
- ' Application.OnTime Now + TimeValue(LastMin), "ThisWorkbook.Timer"
- Application.OnTime Now + TimeValue("00:01:00"), "ThisWorkbook.Timer"
- End Sub
複製代碼 |
|
|
|
|
|
|
- 帖子
- 2035
- 主題
- 24
- 精華
- 0
- 積分
- 2031
- 點名
- 0
- 作業系統
- Win7
- 軟體版本
- Office2010
- 閱讀權限
- 100
- 性別
- 男
- 註冊時間
- 2012-3-22
- 最後登錄
- 2024-2-1
|
124#
發表於 2016-6-21 19:32
| 只看該作者
回復 120# areskevin
- Public Sub Timer()
- Dim Pos As Long, HHMM As Integer, col As Variant
-
- With Sheets("每分記錄")
- HHMM = Hour(Now) * 100 + Minute(Now)
- If (HHMM < 900 Or HHMM > 1333) Then Exit Sub
-
- .Cells(2, 4) = Now
- ' Time 6/21 6/21 6/22 6/22 6/23 6/23 6/24 6/24 6/25 6/25
- Set col = Range(.Range("A5"), .Cells(5, .[A5].End(xlToRight).Column)).Find(Format(.Cells(2, 4), "M/D"), LookIn:=xlValues, LookAt:=xlWhole)
- Pos = .Range("A" & Rows.Count).End(xlUp).Row + 1
- .Cells(Pos, 1) = Format(.Cells(2, 4), "HH:MM:SS")
- .Cells(Pos, col.Column) = .Cells(2, 2)
- .Cells(Pos, col.Column + 1) = .Cells(2, 3)
- End With
-
- ' Application.OnTime Now + TimeValue(LastMin), "ThisWorkbook.Timer"
- Application.OnTime Now + TimeValue("00:01:00"), "ThisWorkbook.Timer"
- End Sub
複製代碼 |
|
|
|
|
|
|