我尝试了PlotArea.InsideHeight
,方法与documentation中的示例类似,以便在绘图旁边绘制一个大小相等的Shape。
但是,如果窗口缩放最近发生了变化(不管具体值是什么),则此属性的值是错误的。重新运行代码将获得正确的值。
最小再现示例,假设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
是不可靠的。
1条答案
按热度按时间h43kikqp1#
事实证明,这个问题很难追查。尽管如此,让我给未来可能的读者留下一条建议:将新绘制的Shape添加到
chart_object.Chart.Shapes
而不是ActiveSheet.Shapes
允许指定Shape在图表的局部坐标系中的位置(因此不应该添加chart_object.Chart.Top
来获得全局坐标)。这将生成大小和位置更稳定的Shape,希望在缩放窗口时不会来回弹出。