此問題可以總結如下: 只有在運行代碼時纔會出現此問題,而不是在通過chrt.HasTitle
-line時逐步執行。在這種情況下,它會正確地創建一個標題,然後我可以編輯它,但是我想要。設置圖表標題僅在Excel 2016中進行調試時才起作用
我先給出相關的源代碼。這隻包括區分Excel 2003和更新版本的代碼(因爲Excel 2003在'新'代碼上崩潰,反之亦然)。
Sub EnableChartTitle(chrt As Chart)
If Application.Version = "11.0" Then
EnableChartTitle_2003 chrt
Else
EnableChartTitle_Post2003 chrt
End If
End Sub
Sub EnableChartTitle_2003(chrt As Chart)
chrt.HasTitle = True
End Sub
Sub EnableChartTitle_Post2003(chrt As Chart)
chrt.SetElement msoElementChartTitleAboveChart
End Sub
採用chrt.SetElement
前面繞過這個確切問題,但現在似乎又回到了與Office 2016使用舊chrt.HasTitle
導致同樣的問題與2016年
此代碼工作完全所有直到Office 2016的Office版本。現在它突然拒絕啓用標題,除非我單步執行代碼,當然這不是預期的用途。
任何人都知道這是什麼和可能的修復? VBA真的讓我很擔心這種事情,Google也很難。 This is where I got the previous solution from.
下面是創建圖表的代碼:
Dim chrt As Chart
RI.rSheet.Activate
Set chrt = Charts.Add.Location(xlLocationAsObject, RI.rSheet.Name)
然後它的位置被設置,任何一系列已自動添加被去除,並且新的數據使用chrt.SeriesCollection.Add <range>
加入。
注意:完全相同的代碼在另一個腳本中有效。這是因爲這裏只添加了一個系列。設置系列的名稱時,Excel會自動啓用標題。在這個腳本中,添加了多個系列,並且一旦添加了第二組數據,標題就會再次自動刪除。然後它不會再啓用它。
只是爲了排除非程序化的解決方案,你爲什麼要啓用一個標題,而不是僅僅有一個擺在首位? – Absinthe
因爲一切都以編程方式完成。這個腳本的目的是創建大量的工作簿,而無需任何手動干預。我已經向該問題添加了代碼以顯示如何創建圖表。 – Didii