簡體   English   中英

縮放工作表后,Excel 在 VBA 中返回錯誤的圖表高度

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM