標題:
[發問]
發問 : 如何設定能在規定的時間紀錄資料
[打印本頁]
作者:
HenryWang123
時間:
2014-5-26 11:13
標題:
發問 : 如何設定能在規定的時間紀錄資料
本帖最後由 GBKEE 於 2014-5-27 13:42 編輯
[attach]18369[/attach]
大家好,我是完全不懂程式交易的新手,煩請各位高手前輩指導了~
圖片中
紅色框框
已經設定可以跟永豐Eleader連線,數字會自動更新。
目前我想要每兩分鐘將上面藍色框框的數據自動紀錄在下方規定時間旁的區域,請問我該如何輸入語法,或者是如何操作呢 ?
麻煩各位前輩指導了:loveliness:
作者:
HenryWang123
時間:
2014-5-26 15:23
回復
1#
HenryWang123
如果教學要收費也可以寄信給我~
[email protected]
作者:
owen06
時間:
2014-5-27 11:29
回復
2#
HenryWang123
我是會定時讓資料往下copy啦,可是瑞凡~~~我停不下來呀~~~有沒有其他高手能教一下怎麼設定退場機制,讓他能在預定的時間過後,就不再copy了。
Application.OnTime t2, "AutoCopy",,false 這個語法一直不知道該怎麼應用。
在thisworkbook裡貼上
Private Sub Workbook_Open()
T = #10:58:00 AM#
Application.OnTime T, "AutoCopy"
End Sub
複製代碼
然後新增模組,再貼上
Sub AutoCopy()
t2 = Now + TimeSerial(0, 2, 0)
Sheet1.[b8:i10].Copy
Sheet1.[b65536].End(3).Offset(1, 0).Select
If Sheet1.[b13] = "" Then Sheet1.[b13].Select
Selection.PasteSpecial xlPasteValues
Application.OnTime t2, "AutoCopy"
End Sub
複製代碼
作者:
GBKEE
時間:
2014-5-27 13:56
回復
3#
owen06
我停不下來呀
If Time <= #1:30:00 PM# Then Application.OnTime t2, "AutoCopy"
複製代碼
作者:
owen06
時間:
2014-5-27 14:25
回復
4#
GBKEE
原來在application.ontime前面設定個IF執行條件就行了!感謝GKBEE版主一語點醒夢中人~~~
謝謝版主大大~
作者:
stillfish00
時間:
2014-5-27 17:01
回復
3#
owen06
Application.OnTime t2, "AutoCopy",,false 這個語法一直不知道該怎麼應用。
可用全域變數紀錄時間,以取消該時間的排程
Private tNext As Date
Sub StartButton()
On Error Resume Next
StopButton
On Error GoTo 0
MyLoop TimeValue("18:00:00")
End Sub
Public Sub StopButton()
Application.OnTime tNext, "MyLoop", , False
End Sub
Sub MyLoop(Optional tStart)
Const MIN_INTERVAL = 1 '間隔時間
If Not IsMissing(tStart) Then
tNext = tStart
Application.OnTime tNext, "MyLoop"
Else
tNext = tNext + TimeSerial(0, MIN_INTERVAL, 0)
Application.OnTime tNext, "MyLoop"
MyCopyFunc 'call your copy function
End If
End Sub
Sub MyCopyFunc()
'The timing cost of MyCopyFunc should less than the time of INTERVAL
'Copy here
End Sub
複製代碼
作者:
HenryWang123
時間:
2014-5-28 09:38
真的非常感謝各位的解答~讓我能夠有機會到下一步!!
目前按執行以後有遇到這個問題,在煩請各位幫忙了!
[attach]18388[/attach]
[attach]18389[/attach]
請問該如何解決呢?
作者:
owen06
時間:
2014-5-28 11:47
回復
7#
HenryWang123
應該是找不到sheet1的關係,你把裡面的sheet1都改成sheets("xxx")應該就行了。(xxx為工作表名稱)
我使用sheet1是因為沒有你的檔案,所以只能用自己使用的情境下去設定,
因此你在不同的情況下,就會出現錯誤,你必需要自己去修改工作表名稱這個部份才可以。
作者:
HenryWang123
時間:
2014-5-28 12:32
有了可以了~ 非常感謝您~
另外有看到網友說要停下來可以用下面這個語法,請問是要加到哪一行裡面呢?
If Time <= #1:30:00 PM# Then Application.OnTime t2, "AutoCopy"
作者:
owen06
時間:
2014-5-28 12:53
回復
9#
HenryWang123
在AutoCopy那個模組裡的最後一行
本來是:Application.OnTime t2, "AutoCopy"
把他改成:If Time <= #1:30:00 PM# Then Application.OnTime t2, "AutoCopy"
就行了。
作者:
HenryWang123
時間:
2014-5-28 21:29
發自內心的感謝您
作者:
HenryWang123
時間:
2014-6-5 10:53
[attach]18438[/attach]
[attach]18440[/attach]
這邊遇到一個狀況需要再請教各位,就是想要在" Sheet1 "和" Sheet2 " 執行同樣的動作,但是卻無法執行,請問該怎麼解決呢?
我的動作是按執行 > 選執行module 1 > 執行一個動作後,下一次要copy時就出現"發現不確定名稱"的這個問題了
如果我選執行module 1 > 接著再選執行選執行module 2 > 就會進行偵錯
要請教各位該如何解決呢 ?
作者:
owen06
時間:
2014-6-5 12:32
回復
12#
HenryWang123
請問方便附個檔案來看看嗎?
作者:
HenryWang123
時間:
2014-6-5 16:07
[attach]18445[/attach]
麻煩囉
作者:
f3202
時間:
2014-6-5 20:26
回復
14#
HenryWang123
應是沒指定 sheet1 或 sheet2
作者:
owen06
時間:
2014-6-6 00:20
回復
12#
HenryWang123
我想你應該是停留在sheet1,但是指令卻命令他要去sheet2越區辦案,
所以他就抗命囉。
你如果是都只要copy同一個資料,但是到不同工作表,我是建議你修改成這樣,
用一個模組就好了,另一個取消掉。
如果有其他問題,再提出來一起討論吧。
Sub AutoCopy()
t2 = Now + TimeSerial(0, 1, 0)
Application.Calculation = xlAutomatic
Sheets("sheet1").Select
Sheets("Sheet1").[a9:j11].Copy
Sheets("Sheet1").[b65536].End(3).Offset(1, 0).Select
If Sheets("Sheet1").[b13] = "" Then Sheets("Sheet1").[b13].Select
Selection.PasteSpecial xlPasteValues
Sheets("sheet2").Select
Sheets("Sheet2").[b65536].End(3).Offset(1, 0).Select
If Sheets("Sheet2").[b13] = "" Then Sheets("Sheet2").[b13].Select
Selection.PasteSpecial xlPasteValues
If Time <= #13:45:00 PM# Then Application.OnTime t2, "AutoCopy"
End Sub
複製代碼
作者:
c_c_lai
時間:
2014-6-6 07:59
本帖最後由 c_c_lai 於 2014-6-6 08:51 編輯
回復
14#
HenryWang123
試試看!
ThisWorkbook:
Option Explicit
Private Sub Workbook_Open()
Dim T As Date
T = #8:47:00 AM#
Application.OnTime T, "Module1.AutoCopy"
End Sub
複製代碼
Module1:
Option Explicit
Sub AutoCopy()
Dim t2 As Date
Dim i As Integer, sht As String
i = 0
While i < 2
i = i + 1
t2 = Now + TimeSerial(0, 2, 0)
sht = IIf(i = 1, "Sheet1", "Sheet2")
With Sheets(sht)
.Select
.[a9:j11].Copy
.[b65536].End(3).Offset(1, 0).Select
If .[b13] = "" Then .[b13].Select
Selection.PasteSpecial xlPasteValues
End With
Wend
If Time <= #1:45:00 PM# Then Application.OnTime t2, "Module1.AutoCopy"
End Sub
複製代碼
作者:
HenryWang123
時間:
2014-6-9 13:04
很順利的運行~謝謝兩位的熱心幫忙~
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)