我使用Excel VBA從儀器讀取數據行。 我想在Excel Active Chart上動態地繪製數據,在讀取數據後立即繪製數據。 我需要等待並每隔5秒讀取一次數據,同時,通過VBA Application.Wait命令或通過Kernel32 Sleep命令「睡眠」。 在任何情況下,活動圖表都不會更新。完整的情節只有在最後一次「睡眠」之後纔會出現。 任何建議將不勝感激。帶有延遲的Excel圖表的動態更新
下面是簡化的代碼
Sub New_Data(indx)
Dim x As Integer
While True
x = Read_Instrument(1)
y = Read_Instrument(2)
Cells(indx, 1) = x
Cells(indx, 2) = y
ActiveSheet.ChartObjects.Item(1).Activate
ActiveChart.FullSeriesCollection(1).XValues = "=Sheet1!$A$1:$A$" & indx
ActiveChart.FullSeriesCollection(1).Values = "=Sheet1!$B$1:$B$" & indx
indx = indx + 1
Sleep 5000 'Use the KERNEL32 Sleep function for 5000 milliseconds
Wend
End Sub
我們需要看到一些代碼來「猜測」你當前的方法有什麼問題。有了這幾個信息,似乎'Worksheet_Change'是要走的路。 –
在嘗試解決任何問題之前,我建議命名Chart對象並獲取句柄,而不是活動圖表等。ActiveChart可以工作,但是您的代碼將更容易處理並避免任何焦點問題。 'Cells(indx,1)= x'每次都在結尾處設置值?再次使用工作表對象(例如'SheetCodeName.Cells(indx,1)= x'等限定對單元格的調用。 – MacroMarc
我對VBA非常陌生,並且不熟悉它的所有高級功能。 (1)如何命名和獲取圖表對象的句柄以及如何稍後使用它的句柄以及(2)如何使用Worksheet對象限定對單元格的調用。您可以使用上面發佈的代碼作爲示例。謝謝! – DynamicChart