返回列表 上一主題 發帖

[發問] DDE資料紀錄問題

回復 1# chenua
一般模組輸入以下程式碼,存檔後開啟檔案,測試看看
  1. Sub auto_open()'開檔時自動執行此巨集
  2. GetDDE  '呼叫程序
  3. End Sub
  4. Sub GetDDE()
  5. Dim T As Date
  6. T = Now  '取得現在時間
  7. If Not IsError(Sheets(1).[B2]) Then Sheets(2).[A65536].End(xlUp).Offset(1).Resize(, 7) = Sheets(1).[A2:G2].Value  '工作表1的資料DDE連結成功寫入工作表2
  8. Application.OnTime T + TimeValue("00:00:02"), "GetDDE"  '這是以2秒測試,間隔5分鐘改成TimeValue("00:05:00"),
  9. End Sub
複製代碼
學海無涯_不恥下問

TOP

回復 7# c_c_lai


    Sheets(2).[A65536].End(xlUp).Offset(1).Resize(, 7)= Sheets(1).[A2:G2].Value
這樣的寫入是以陣列型態寫入,所以不能使用
    Sheets(2).[A65536].End(xlUp).Offset(1).Resize(, 7)= Sheets(1).[A2:G2].Text
你的問題只是格式的問題
只需將兩個工作表對應欄位格式先設成相同即可使用
例如:Sheets(1)的A2是時間,格式應該是"h:mm:ss"
你就把Sheets(2)的A欄格式也設定成"h:mm:ss"
play.gif
學海無涯_不恥下問

TOP

本帖最後由 Hsieh 於 2012-4-27 08:39 編輯

回復 9# c_c_lai

動態新增工作表為目的工作表時,預設格式通常是以通用格式
如果不願意使用程式碼於新增工作表時設定格式
可先製作好應有格式的工作表作為範本
於新增工作表時以插入範本為之
總之,一次性轉寫資料時應以value屬性寫入,不得以text寫入
若要以text寫入則必須一格一格寫入

Sheets("Good Morning").[A].Formula = "hh:mm:ss"
更改格式這樣的語法是錯誤的,建議你先以錄製巨集方式,取得基本程式碼
您有其他程式語言基礎,邏輯概念應該不是問題
你可從熟悉EXCEL的基本操作,去了解EXCEL VBA的特殊函數及物件屬性
因為語法就是VB語法,所以,基本功能了解越多,你的VBA運用才會越靈活
~共勉之~
學海無涯_不恥下問

TOP

        靜思自在 : 不要隨心所欲,要隨心教育自己。
返回列表 上一主題