[英]Excel returns wrong chart height in VBA after zooming the worksheet
我試圖以與其文檔中的示例非常相似的方式使用PlotArea.InsideHeight
:在繪圖旁邊繪制一個大小相同的形狀。
但是,如果最近更改了窗口縮放比例(無論特定值如何),則此屬性的值是錯誤的。 再次重新運行代碼會得到正確的值。
作為最小再現示例,假設存在chart_object
,
Dim i
For Each i in Array(100, 85, 100, 115, 100)
ActiveWindow.Zoom = i
msgbox chart_object.Chart.PlotArea.InsideHeight
Next
清楚地表明PlotArea.InsideHeight
是不可靠的。
這是一個已知的錯誤嗎? 關於這個還能做什么?
事實證明,該問題難以追蹤。 不過,讓我給未來的讀者留下一條建議:將新繪制的 Shape 添加到chart_object.Chart.Shapes
而不是ActiveSheet.Shapes
允許在圖表的本地坐標系中指定 Shape 的位置(所以不應該添加chart_object.Chart.Top
來獲取全局坐標)。 這會產生一個更健壯的大小和位置的 Shape,希望它在縮放窗口時不會來回彈出。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.