- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
24#
發表於 2011-7-15 09:11
| 只看該作者
本帖最後由 GBKEE 於 2011-7-16 13:43 編輯
回復 23# andylin
依樣畫葫蘆 試試看- 'ThisWorkbook模組的程序
- Private Sub Workbook_Open() '此程式是檔案開啟時自動執行的程式
- Dim E As Range
- If MsgBox("啟動自動記錄資料??", vbYesNo) = vbNo Then Exit Sub
- Sheets("1分K").UsedRange.Offset(1, 1) = "" ' 清除昨日資料
- Sheets("5分K").UsedRange.Offset(1, 1) = ""
- Sheets("15分K").UsedRange.Offset(1, 1) = ""
- Application.OnTime #9:00:00 AM#, "ThisWorkbook.資料輸入"
- '**** 09:00:00時間執行程式 ->資料輸入
- End Sub
- Sub 資料輸入()
- Dim Ar(1 To 15) 'Ar陣列 -> 存入你要的數據
- Ar(1) = Time
- Ar(2) = [Table!B2]
- Ar(3) = [Table!C2]
- Ar(4) = "=IF(ROW()>2,RC[-2]-R[-1]C[-2],"""")" ' ** 公式
- Ar(5) = "=IF(ROW()>2,RC[-2]-R[-1]C[-2],"""")"
- 'Ar(6) 空白
- Ar(7) = [Table!E2]
- Ar(8) = [Table!F2]
- Ar(9) = "=IF(ROW()>2,RC[-2]-R[-1]C[-2],"""")"
- Ar(10) = "=IF(ROW()>2,RC[-2]-R[-1]C[-2],"""")"
- 'Ar(11) 空白
- Ar(12) = [Table!H2]
- Ar(13) = [Table!I2]
- Ar(14) = "=IF(ROW()>2,RC[-2]-R[-1]C[-2],"""")"
- Ar(15) = "=IF(ROW()>2,RC[-2]-R[-1]C[-2],"""")"
- If Minute(Time) Mod 1 = 0 Then Sheets("1分K").Range("A" & Rows.Count).End(xlUp).Offset(1).Resize(1, UBound(Ar)).Value = Ar 'Minute(Time) Mod 1=0 每分鐘
- If Minute(Time) Mod 5 = 0 Then Sheets("5分K").Range("A" & Rows.Count).End(xlUp).Offset(1).Resize(1, UBound(Ar)).Value = Ar 'Minute(Time) Mod 1=0 每5分鐘
- If Minute(Time) Mod 15 = 0 Then Sheets("15分K").Range("A" & Rows.Count).End(xlUp).Offset(1).Resize(1, UBound(Ar)).Value = Ar 'Minute(Time) Mod 1 =0 每15分鐘
- If Time <= #1:30:00 PM# Then Application.OnTime TimeValue(Format(Time, "hh:MM:00")) + #12:01:00 AM#, "ThisWorkbook.資料輸入"
- ' *** #1:30:00 PM# 之前時間執行程式 ->資料輸入
- End Sub
複製代碼 請看這裡的PS |
|