- 帖子
- 9
- 主題
- 2
- 精華
- 0
- 積分
- 18
- 點名
- 0
- 作業系統
- Windows 7
- 軟體版本
- Office 2010
- 閱讀權限
- 10
- 性別
- 男
- 註冊時間
- 2011-12-12
- 最後登錄
- 2013-9-16
|
切換工作表後無法更新被複製儲存格資料
我在 Sheet1 接收 DDE 報價資料與設定顯示圖表,然後寫 VBA 程式,固定每 30 秒在 Sheet2 紀錄從 DDE 所接收的變動資料。
我的問題是,當切換到 Sheet2 工作表時,整個運轉一切正常;但是若當我切換到 Sheet1 時想觀看圖表的即時顯示,Sheet2 內的紀錄就會停止,除非再切換至 Sheet2 工作表,才又會定時紀錄。
我的 VBA 程式如下:
-------------------------------------------------------------
Option Explicit
Public nRow, Pos As Integer
Private Sub Workbook_Open()
On Error Resume Next
'Application.OnTime TimeValue("08:43:00"), "ThisWorkBook.SyncData"
Call SyncData
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Application.OnTime Now + TimeValue("00:00:01"), "ThisWorkBook.SyncData", , False
End Sub
'*****************************************************************************
' 將 DDE 即時報價資料依時間間隔寫入至報價資料區
'*****************************************************************************
Public Sub SyncData()
On Error Resume Next
'If TimeValue(Now) > TimeValue("13:46:00") Then Exit Sub
With .Sheets("即時資料")
nRow = .Range("A65536").End(xlUp).Row '判斷最後一列有資料的位置
Pos = nRow + 1
Cells(Pos, 1) = Time
Cells(Pos, 3) = Sheets("DDE報價").Cells(7, 3) '台指期成交價
End With
Application.OnTime Now + TimeValue("00:00:30"), "ThisWorkBook.SyncData" '每隔固定設定時間執行寫入至即時資料表
End Sub
-----------------------------------------------------------------------------
我的 VBA 程式是寫在 "ThisWorkBook" 內。
請問:
1. 程式內哪裡有問題? 而導致切換到其它工作表後就停止紀錄。
2. 到底這程式 (SyncData) 是否寫在 ThisWorkBook 還是 Module 內比較理想呢? 我一直搞不太懂 ThisWorkBook 與 Module 的差別。 |
|