請問高手要將以下DDE 每分鐘記錄改為30秒自動記錄一次要怎改
- 帖子
- 2035
- 主題
- 24
- 精華
- 0
- 積分
- 2031
- 點名
- 0
- 作業系統
- Win7
- 軟體版本
- Office2010
- 閱讀權限
- 100
- 性別
- 男
- 註冊時間
- 2012-3-22
- 最後登錄
- 2024-2-1
|
回復 120# areskevin
你設了一個 Public Sub Timer() 的模組的開始,
卻沒有模組的結束 (End Sub),所以會產生執行之錯誤。
完整的模組應為:- Public Sub Timer()
- Dim Pos, i, HHMM As Integer, RangeStr As String
-
- On Error Resume Next
- Sheets("每分記錄").Cells(2, 4) = Time
-
- HHMM = Hour(Time) * 100 + Minute(Time)
- If (HHMM < 900 Or HHMM > 1333) Then Exit Sub
-
- With Sheets("每分記錄")
- .Cells(2, 2) = .Cells(2, 2) + 1
- Pos = .Cells(2, 2)
- .Cells(Pos, 1) = Time
- .Cells(Pos, 2) = .Cells(2, 2)
- .Cells(Pos, 3) = .Cells(2, 3)
- End With
-
- Application.OnTime Now + TimeValue(LastMin), "ThisWorkbook.Timer"
- End Sub
複製代碼 但是我實在看不懂 With Sheets("每分記錄") 裏頭
究竟在描述甚麼,想要做甚麼。
因為 .Cells(2, 2) 內容實際上指的是 "=(內外盤!D35)"。 |
|
|
|
|
|
|
- 帖子
- 2035
- 主題
- 24
- 精華
- 0
- 積分
- 2031
- 點名
- 0
- 作業系統
- Win7
- 軟體版本
- Office2010
- 閱讀權限
- 100
- 性別
- 男
- 註冊時間
- 2012-3-22
- 最後登錄
- 2024-2-1
|
122#
發表於 2016-6-21 17:55
| 只看該作者
回復 120# areskevin
試試看是否是你的提問:- Public Sub Timer()
- Dim Pos As Long, HHMM As Integer
-
- With Sheets("每分記錄")
- HHMM = Hour(Now) * 100 + Minute(Now)
- If (HHMM < 900 Or HHMM > 1333) Then Exit Sub
-
- .Cells(2, 4) = Now
- Pos = .Range("A" & Rows.Count).End(xlUp).Row + 1
- .Cells(Pos, 1) = Format(.Cells(2, 4), "HH:MM:SS")
- .Cells(Pos, 2) = .Cells(2, 2)
- .Cells(Pos, 3) = .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
|
123#
發表於 2016-6-21 19:28
| 只看該作者
|
|
|
|
|
|
- 帖子
- 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
複製代碼 |
|
|
|
|
|
|
- 帖子
- 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
|
126#
發表於 2016-6-22 07:21
| 只看該作者
|
|
|
|
|
|
- 帖子
- 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
|
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!
|
|
|
|
|
|
|
- 帖子
- 2
- 主題
- 1
- 精華
- 0
- 積分
- 3
- 點名
- 0
- 作業系統
- WINDOWS7
- 軟體版本
- 64
- 閱讀權限
- 10
- 性別
- 男
- 註冊時間
- 2016-6-25
- 最後登錄
- 2016-10-14
|
129#
發表於 2016-6-25 20:30
| 只看該作者
|
小翁
|
|
|
|
|
- 帖子
- 1
- 主題
- 0
- 精華
- 0
- 積分
- 1
- 點名
- 0
- 作業系統
- WIN7
- 軟體版本
- OFFICE2010
- 閱讀權限
- 10
- 註冊時間
- 2016-7-8
- 最後登錄
- 2016-8-19

|
130#
發表於 2016-7-9 19:30
| 只看該作者
想請問如果想要一開盤就先把昨天每30秒記錄的資料移除,應該要再補上怎樣的程式碼呢??
另外,想請問一下,有些想知道的資訊如果證卷商沒有那個品項的代碼是不是就無法取得呢?
譬如:大盤的漲跌家數..etc. |
|
|
|
|
|
|