2013-04-11 111 views
-2

我目前正在嘗試處理Excel中的數據連接,並且我想在數據週期性更改時動態填充某些單元格。使用Excel中的數據連接動態填充單元格

更確切地說,我有一個Excel工作表,每8分鐘通過一個互聯網數據連接 - 股票市場更新,每3分鐘更新一次。每隔3分鐘一個單元格的內容(十進制數),例如B1被更新。

我想知道是否有可能在我的工作表的一列中,在整個8小時內「記錄」每個數字B1。 8 * 60/3 = 160,因此我想動態填充單元格B1內容的160個單元格。

如果有可能,那麼我想從這160個單元中取出最大值(使用MAX(,)函數),在另一列中記錄該數字並繪製B1值演化圖超過8小時的時間窗口。我們的想法是每天都這樣做,以便在一週或一個月後,我可以查看工作表並評估市場趨勢。

以下的答案和評論,我試圖寫一些VBA子程序,但我努力讓他們實際工作。這裏是我的代碼:

Dim RunTime As Date 
Dim j As Integer 

Sub CopyCell() 
Sheets("test").Cells(j, 3) = Sheets("test").Range("B1").Value 
j = j + 1 
'If Time >= TimeSerial(20, 0, 0) Then' 
    Application.OnTime RunTime, "CopyCell()", , False 
End If 
End Sub 

Sub Main() 
MsgBox "Starting Macro" 
j = 0 
RunTime = Now + TimeValue("00:03:00") 
Application.OnTime RunTime, "CopyCell()" 
End Sub 

對於與此同時,我觸發的Main()子自己,希望讓它停在20:0:0(晚上8點)。當我觸發Main()子程序時,我收到消息「CopyCell()在本工作簿中不可用」,但我確實已將上述代碼複製到VBA編輯器的ThisWorkbook選項卡中,並且已啓用所有宏。請注意,如果我單獨運行CopyCell()子,則將單元格B1的內容複製到單元格C1。

你能幫我弄清楚我的代碼有什麼問題嗎?

感謝, -David

+0

嗨,我真的不喜歡沒有任何想法如何做到這一點...這是我第一次使用Excel與數據連接,我只知道如何閱讀更新的數據。我猜測必須有定期複製單元格數據的功能,但我找不到它。 – david 2013-04-11 02:28:02

+0

沒有一個內置的公式或函數來完成你所要求的內容,你可以找到一個混合和匹配來完成它,但最簡單的事情就是將它寫入某種數據庫並在那裏分析,因爲你每週至少要寫成千條記錄,至少 – 2013-04-11 03:32:42

回答

0

沒有你的代碼是很難給你如何做到這一點正是代碼,但在基本的術語,你可以做到這一點很容易地。無論何時刷新刷新,只需要VBA將數據寫入單獨的工作表或數據庫(最好是像Access這樣的數據庫,因爲它可以和Excel一起工作,而且不需要保存Excel工作簿)

+0

嗨Kadumel,我目前沒有寫任何代碼。我只需要一張名爲「數據」的工作表,其中股票市場數據已經更新,一張名爲「分析」的工作表我想進行分析。目前我在「分析」中的單元格等於「= data!Bx」,其中「x」是行號,我只是使用這些信息來進行分析。我從來沒有在Excel中編寫VBA腳本,但我會試一試。謝謝 – david 2013-04-11 05:23:01

+0

嗨,我已經根據你的意見用一些VBA代碼更新了我的問題。 – david 2013-04-17 03:40:04

+0

我修改了我的問題,現在它包含了我在第一次修改後錯誤地刪除的原始問題 – david 2013-04-18 00:40:29

相關問題