我寫了一些簡單的VBA代碼來更新excel文檔中很多時間序列圖的x軸。爲什麼輸入框變量在循環的第一次迭代後切換爲空?
我遇到的問題是,在循環的第一次迭代之後,start_date和end_date變量變成「」。我不確定變量爲什麼會消失。該宏對第一個圖表起作用,但由於可變問題而導致崩潰。
這是我的代碼:
Sub xaxis_reset()
Dim start_date As Variant
Dim end_date As Variant
Dim ws As Integer
Dim obj As Integer
start_date = InputBox("Start Date")
end_date = InputBox("End Date")
ws = ActiveWorkbook.Worksheets.Count - 2
For w = 1 To ws
obj = Worksheets(w).ChartObjects.Count
For Z = 1 To obj
Worksheets(w).ChartObjects(Z).Activate
With ActiveChart
.Axes(xlCategory).MinimumScale = start_date
.Axes(xlCategory).MaximumScale = end_date
End With
Next Z
Next w
End Sub
謝謝
你如何調用宏? w和Z沒有定義。問題可能來自圖表激活,請嘗試刪除它。 –
@VincentG我試圖拿出圖表激活,我仍然有同樣的問題。我的結論是,這是一個Excel錯誤。當我運行代碼excel隨機關閉。當我逐步完成代碼時它會關閉,當代碼崩潰時它會關閉,然後單擊「調試」或「結束」。出於某種原因,Excel真的不喜歡上面的代碼。 – Jarom
爲什麼激活圖表然後設置座標軸?你應該只能說「With Worksheets(w).ChartObjects(Z)」。我沒有看到任何應該重置變量的內容。你確定他們正在循環內重置嗎? –