- 帖子
- 185
- 主題
- 48
- 精華
- 0
- 積分
- 227
- 點名
- 0
- 作業系統
- WIN 7
- 軟體版本
- 旗舰版
- 閱讀權限
- 20
- 性別
- 男
- 註冊時間
- 2010-9-14
- 最後登錄
- 2025-1-27
|
2#
發表於 2014-4-8 16:57
| 只看該作者
回復 1# cdkee
嘗試了一些例子,只做到按時間插入部份資料
test2.rar (34.64 KB)
再請教各大大,這裡找到"擷取最高最低"例子 和 "找尋指定時間插入相關資料"例子,應該如何結合才能做到要求,謝謝!- '擷取最高最低
- Private Sub Worksheet_Calculate()
-
- Dim Rng As Range
-
- Static Msg As Boolean '以 Static 陳述式宣告的變數,在程式執行期間,會一直保留內容。
-
- If Weekday(Date, vbMonday) > 5 Or Time < #5:46:00 PM# Or Time > #11:00:00 PM# Then Exit Sub '非營業日 或 非營業時間
-
- If Msg = False Then
-
- 清除舊資料
-
- Msg = True
-
- End If
-
- With Cells(Rows.Count, "C").End(xlUp)
-
- If .Row = 7 Then
-
- Set Rng = .Offset(1)
-
- Else
-
- Set Rng = .Cells
-
- End If
-
- End With
-
- If Rng = "" Or Rng.Text <> Format([b5], "hh:mm") Then
-
- If Rng <> "" Then Set Rng = Rng.Offset(1)
-
- Rng = Format([b5], "hh:mm")
-
- Rng(1, 2) = [B6].Text
-
- Rng(1, 3) = [B6].Text
-
- ElseIf Rng.Text = Format([b5], "hh:mm") Then
-
- If [B6] > Rng(1, 2) Then Rng(1, 2) = [B6].Text
-
- If [B6] < Rng(1, 3) Then Rng(1, 3) = [B6].Text
-
- End If
-
- End Sub
複製代碼- '找尋定時間插入相關資料
- Sub 資料輸入()
- Dim E As Range
- '''''''''''''''''''''''''''''''''''''
- 'Dim Ar() 'Ar陣列 -> 存入你要的數據
- 'Ar = Sheets("Table").Range("B2:D2").Value
- '''''''''''''''''''''''''''''''''''''
- Dim Ar(1 To 5) 'Ar陣列 -> 存入你要的數據
- Ar(1) = [Table!B2]
- Ar(2) = [Table!C2]
- Ar(3) = [Table!D2]
- Ar(4) = [Table!E2]
- Ar(5) = [Table!A2]
- If Minute(Time) Mod 1 = 0 Then
- Set E = Sheets("1分K").Range("A:A").Find(TimeSerial(Hour(Time), Minute(Time), 0))
- E.Offset(0, 1).Resize(1, UBound(Ar)).Value = Ar 'Minute(Time) Mod 1=0 每分鐘
-
- ElseIf Minute(Time) Mod 1 = 1 Then
- E.Offset(0, 1).Resize(1, UBound(Ar)).Value = Ar
- End If
- 'If Minute(Time) Mod 5 = 0 Then
- ' Set E = Sheets("5分K").Range("A:A").Find(TimeSerial(Hour(Time), Minute(Time), 0))
- ' E.Offset(0, 1).Resize(1, UBound(Ar)).Value = Ar 'Minute(Time) Mod 5=0 每5分鐘
- 'End If
- 'If Minute(Time) Mod 15 = 0 Then
- ' Set E = Sheets("15分K").Range("A:A").Find(TimeSerial(Hour(Time), Minute(Time), 0))
- ' E.Offset(0, 1).Resize(1, UBound(Ar)).Value = Ar 'Minute(Time) Mod 15=0 每15分鐘
- 'End If
- If Time <= #4:15:00 PM# Then Application.OnTime TimeValue(Format(Time, "hh:MM:00")) + #12:01:00 AM#, "ThisWorkbook.資料輸入"
- ' *** #4:15:00 PM# 之前時間執行程式 ->資料輸入
- Set E = Nothing '
- End Sub
複製代碼 |
|