請問高手要將以下DDE 每分鐘記錄改為30秒自動記錄一次要怎改
- 帖子
- 48
- 主題
- 2
- 精華
- 0
- 積分
- 64
- 點名
- 0
- 作業系統
- xp
- 軟體版本
- office 2000
- 閱讀權限
- 20
- 性別
- 男
- 來自
- TAIPEI
- 註冊時間
- 2011-4-16
- 最後登錄
- 2025-2-16
|
本帖最後由 a8350070 於 2012-5-26 11:04 編輯
試著在變動幅度最小的前提下修改
Option Explicit
Dim LastMin As Long
Private Sub Workbook_Open()
Sheets("策略記錄").Cells(4, 2) = 10
LastMin = Hour(Time) * 3600 + Minute(Time) * 60 + Second(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 Hour(Time) * 3600 + Minute(Time) * 60 + Second(Time) > LastMin + 30 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 = Hour(Time) * 3600 + Minute(Time) * 60 + Second(Time)
End If
End Sub |
|
My Blog
http://blog.xuite.net/a8350070
|
|
|
|
|
- 帖子
- 2035
- 主題
- 24
- 精華
- 0
- 積分
- 2031
- 點名
- 0
- 作業系統
- Win7
- 軟體版本
- Office2010
- 閱讀權限
- 100
- 性別
- 男
- 註冊時間
- 2012-3-22
- 最後登錄
- 2024-2-1
|
12#
發表於 2012-5-26 11:38
| 只看該作者
回復 9# xu123
- Option Explicit
- Dim LastMin As String ' 更改為間隔時段設定
- Private Sub Workbook_Open()
- Sheets("策略記錄").Cells(4, 2) = 10 ' 保留你之前的設定,每次一開啟Excel都重新開始
- LastMin = "00:00:30" ' 每隔 30 秒的時段設定。如需以一分鐘做處哩,則請修正為 "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, i, HHMM As Integer, RangeStr As String
-
- On Error Resume Next
- Sheets("策略記錄").Cells(3, 2) = Time '將時間show至策略的b3欄位
-
- HHMM = Hour(Time) * 100 + Minute(Time)
- If (HHMM < 845 Or HHMM > 1345) Then Exit Sub '營業時間才執行
-
- 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
-
- Application.OnTime Now + TimeValue(LastMin), "ThisWorkbook.Timer" ' 每 LastMin 執行一次
- End Sub
複製代碼 祝星期假日愉快!
自動記錄每分鐘委買賣均值-範例.rar (12.31 KB)
|
|
|
|
|
|
|
- 帖子
- 48
- 主題
- 14
- 精華
- 0
- 積分
- 62
- 點名
- 0
- 作業系統
- win7
- 軟體版本
- office2003
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2012-5-25
- 最後登錄
- 2022-4-23
|
13#
發表於 2012-5-26 12:11
| 只看該作者
測試可以使用了
謝謝a8350070 和c_c_lai
你們真的很熱心 |
|
|
|
|
|
|
- 帖子
- 4
- 主題
- 2
- 精華
- 0
- 積分
- 12
- 點名
- 0
- 作業系統
- Windows
- 軟體版本
- 7
- 閱讀權限
- 10
- 註冊時間
- 2012-4-4
- 最後登錄
- 2017-3-6
|
14#
發表於 2012-5-27 15:59
| 只看該作者
|
|
|
|
|
|
- 帖子
- 44
- 主題
- 1
- 精華
- 0
- 積分
- 78
- 點名
- 0
- 作業系統
- WIN XP
- 軟體版本
- SP3
- 閱讀權限
- 20
- 性別
- 男
- 來自
- taipei
- 註冊時間
- 2012-5-4
- 最後登錄
- 2014-4-24
|
15#
發表於 2012-6-20 19:59
| 只看該作者
|
|
|
|
|
|
- 帖子
- 44
- 主題
- 1
- 精華
- 0
- 積分
- 78
- 點名
- 0
- 作業系統
- WIN XP
- 軟體版本
- SP3
- 閱讀權限
- 20
- 性別
- 男
- 來自
- taipei
- 註冊時間
- 2012-5-4
- 最後登錄
- 2014-4-24
|
16#
發表於 2012-6-20 21:42
| 只看該作者
謝謝a8350070 和c_c_lai 用心的解說 |
|
stock
|
|
|
|
|
- 帖子
- 51
- 主題
- 6
- 精華
- 0
- 積分
- 59
- 點名
- 0
- 作業系統
- VISTA
- 軟體版本
- office 2003
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2012-4-1
- 最後登錄
- 2018-5-17
|
17#
發表於 2012-6-24 10:32
| 只看該作者
本帖最後由 mead 於 2012-6-24 10:34 編輯
試著在變動幅度最小的前提下修改
Option Explicit
Dim LastMin As Long
Private Sub Workbook_Open ...
a8350070 發表於 2012-5-26 11:03 
If Hour(Time) * 3600 + Minute(Time) * 60 + Second(Time) > LastMin + 30 Then '開始後做
這樣改 其要記錄的時間設定要減1
如30秒 就要加29而非30 |
|
|
|
|
|
|
- 帖子
- 2035
- 主題
- 24
- 精華
- 0
- 積分
- 2031
- 點名
- 0
- 作業系統
- Win7
- 軟體版本
- Office2010
- 閱讀權限
- 100
- 性別
- 男
- 註冊時間
- 2012-3-22
- 最後登錄
- 2024-2-1
|
18#
發表於 2012-6-25 07:55
| 只看該作者
本帖最後由 c_c_lai 於 2012-6-25 08:42 編輯
回復 17# mead
附上一個可以隨你需求異動的 "自動記錄每分鐘委買賣均值",
以後你就沒有煩惱的事了!
自動記錄每分鐘委買賣均值.rar (13.96 KB)
P.S. 請將 Time() 裡的 .Cells(21, 2).Offset(0).Resize(, 9) = .[B12:J12].Value
更改成 .Cells(Pos, 2).Offset(0).Resize(, 9) = .[B2:J2].Value |
|
|
|
|
|
|
- 帖子
- 2035
- 主題
- 24
- 精華
- 0
- 積分
- 2031
- 點名
- 0
- 作業系統
- Win7
- 軟體版本
- Office2010
- 閱讀權限
- 100
- 性別
- 男
- 註冊時間
- 2012-3-22
- 最後登錄
- 2024-2-1
|
19#
發表於 2012-6-25 08:49
| 只看該作者
本帖最後由 c_c_lai 於 2012-6-25 17:34 編輯
回復 19# mead
找到了,已 E-Mail 過去了! |
|
|
|
|
|
|
- 帖子
- 44
- 主題
- 1
- 精華
- 0
- 積分
- 78
- 點名
- 0
- 作業系統
- WIN XP
- 軟體版本
- SP3
- 閱讀權限
- 20
- 性別
- 男
- 來自
- taipei
- 註冊時間
- 2012-5-4
- 最後登錄
- 2014-4-24
|
20#
發表於 2012-6-25 19:03
| 只看該作者
回復 20# c_c_lai
c_c_lai 大大,我也需要這個檔案,因權限不足無法下載
可否寄到我的信箱,感謝熱心分享 |
|
stock
|
|
|
|
|