- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
本帖最後由 GBKEE 於 2012-4-13 06:26 編輯
回復 4# cfuxiong
期指即時.rar (17.22 KB)
你附檔 Sheet1 '趨勢研判 A欄的時間請改成 08:40:00 AM 的內容
不要是 日期+時間 的內容 以配合程式的執行.
請將程式碼複製於 ThisWorkbook 模組裡- Option Explicit
- Private Sub Workbook_Open() '活頁簿開啟時 自動執行的預設程序
- With Sheet1.Range("a9:a" & Sheet1.[a9].End(xlDown).Row)
- .Parent.Activate
- .Offset(, 1).Resize(, 3).Clear
- .Interior.ColorIndex = xlNone
- End With
- Dee
- End Sub
- Private Sub Workbook_BeforeClose(Cancel As Boolean) '活頁簿關閉時 自動執行的預設程序
- With Sheet1.QueryTables(1) '第一個 外部資料
- .RefreshOnFileOpen = False '外部資料 於活頁簿開啟時自動匯入 設定為False
- '可停止 活頁簿開啟時詢問 外部資料是否更新
- .RefreshPeriod = 0 '外部資料 自動e更新時間的間格 為0
- End With
- Save '存檔
- End Sub
- Private Sub Dee()
- Dim xf As Range, Rng As Range, xlQuery As QueryTable
- With Sheet1 '趨勢研判
- Set Rng = .Range("a9:a" & .[a9].End(xlDown).Row) '於A欄的時間範圍內
- If Time < Rng(1) Then '時間 小於 [A9]的時間
- Application.OnTime Rng(1), "ThisWorkbook.Dee" '設定A9]的時間 執行 DEE 程序
- ElseIf Time > Rng(Rng.Rows.Count) Then '時間 大於 A欄最後一列的時間
- Exit Sub
- Else
- Sheet1.QueryTables(1).Refresh False '外部資料 更新
- With Rng.Find(TimeSerial(Hour(Time), Minute(Time), 0), LookIn:=xlFormulas) '尋找到A欄的時間
- .Parent.Activate
- .Cells.Select
- .Cells(1, 2).Resize(, 3) = Application.Transpose(.Parent.[D3:D5].Value) '找到A欄的時間: 右三欄的的值
- .Resize(, 4).Interior.ColorIndex = 34 '找到A欄的時間四欄的圖樣
- .Cells(0).Resize(, 4).Interior.ColorIndex = xlNone '取消: 找到A欄的時間上一列的四欄圖樣
- If .Cells(2) <> "" Then
- Application.OnTime .Cells(2), "ThisWorkbook.Dee" '設定於下一分鐘時間 執行 DEE 程序
- Else
- MsgBox "已過 收盤 時間 " & Rng(Rng.Rows.Count).Text
- End If
- End With
- End If
- End With
- End Sub
複製代碼 |
|