Board logo

標題: EXCEL外部資料每分鐘自動紀錄更新過的值(求幫助) [打印本頁]

作者: zz8825252    時間: 2011-10-6 15:56     標題: EXCEL外部資料每分鐘自動紀錄更新過的值(求幫助)

每天我都會從外部資料讀取,想請問一下怎樣子可以讓每分鐘的資料值自動往下紀錄可以讓我作出曲線圖。
1.希望能將記錄表這表單每分鐘讀取的外部資料,的A6到Z6這排數字,以貼上值不是貼上公式的方式表現在A11到Z11一直往下自動記錄到A280到Z280
2.希望能判斷外部資料有更新,才往下自動記錄,以減少同樣資料再重複記錄
3.希望在09:00點開盤時才開始自動輸入13:30會自動結束自動記錄
希望有人能為我解惑,感謝!
範例檔附上

[attach]8108[/attach]
作者: GBKEE    時間: 2011-10-7 16:20

回復 1# zz8825252
2.希望能判斷外部資料有更新,才往下自動記錄,以減少同樣資料再重複記錄
外部資料有更新 不一定是每分鐘的變動只有一筆的,
這是ThisWorkbook的程式碼 檔案開啟時執行的程序
  1. Private Sub Workbook_Open()
  2.     Run "Sheet2.TheRecord"   '執行  "紀錄表" ->Sheet2的TheRecord程序
  3. End Sub
複製代碼

這是 "紀錄表" Sheet2的程式碼  
紀錄表 中 資料區 公式數值有改變時 會啟動這  Worksheet_Calculate 工作表預設事件
  1. Option Explicit
  2. Public Record As String, Rng As Range
  3. Private Sub Worksheet_Calculate()   
  4.     Dim Trng As Range
  5.     If Record <> Join(Application.Transpose(Application.Transpose(Rng)), "") And Time >= #9:00:00 AM# And Time <=
  6. #1:30:00 PM# Then
  7.         Set Trng = Cells(Rows.Count, "a").End(xlUp)  'A欄底部列往上有資料的位置
  8.         If Trng <> "" Then Set Trng = Trng.Offset(1)
  9.         Trng.Resize(, Rng.Columns.Count) = Rng.Value
  10.     End If
  11.     TheRecord
  12. End Sub
  13. '''''這也是是 "紀錄表" Sheet2的程式碼
  14. Private Sub TheRecord()
  15.     Set Rng = [A6:Z6]   '紀錄表中的資料
  16.     Record = Join(Application.Transpose(Application.Transpose(Rng)), "")   '組合資料區的文字
  17.     If Time < #9:00:00 AM# Then Range("A11", Range("A11").End(xlDown)).Resize(, Rng.Columns.Count) = ""
  18. End Sub
複製代碼





歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)