- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
6#
發表於 2016-10-2 10:33
| 只看該作者
本帖最後由 GBKEE 於 2016-10-2 10:37 編輯
回復 3# c_c_lai
DDE 的指定輸入欄位資料匯入後值的異動,Worksheet_Calculate 是會被觸動的
回復 4# laieven
試試看- Option Explicit
- Private Sub Worksheet_Calculate()
- Dim NowDateTime, nowTime, startTime, stopTime, t As Integer
- Dim tr As String
- 'Application.ScreenUpdating = False
- NowDateTime = Now '現在的時間值, 去掉整數部份,
- nowTime = (NowDateTime - Int(NowDateTime)) '得到現在的時間值
- startTime = Range("A2") '開盤時間, 例如: "09:00:00 AM"
- stopTime = Range("A3") '收盤時間, 例如: "01:30:00 PM"
- If nowTime <= startTime Then '尚未開盤
- Exit Sub
- ElseIf nowTime > stopTime Then '已經收盤
- Exit Sub
- ElseIf Range("B2") <> "-" And Range("B2") <> "###" Then '清盤的狀態, 不取其資料
- ' xy = Int((nowTime - startTime) * 1440) + 1 '每差 300 秒就換一列
- ' Range("g1").Value = xy
- ' Range("g2").Value = xy + 59
- t = Application.Text(Time - [A6], "[M]") + 1 '計算間格的分鐘
- Range("B5").Offset(t).Resize(, 4) = Range("B2:E2").Value
- End If
- 'Application.ScreenUpdating = True
- Application.StatusBar = Time
- End Sub
複製代碼 |
|