excel 缩放工作表后返回图表高度

fv2wmkja  于 2023-03-04  发布在  其他
关注(0)|答案(1)|浏览(100)

我尝试了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是不可靠的。

h43kikqp

h43kikqp1#

事实证明,这个问题很难追查。尽管如此,让我给未来可能的读者留下一条建议:将新绘制的Shape添加到chart_object.Chart.Shapes而不是ActiveSheet.Shapes允许指定Shape在图表的局部坐标系中的位置(因此不应该添加chart_object.Chart.Top来获得全局坐标)。这将生成大小和位置更稳定的Shape,希望在缩放窗口时不会来回弹出。

相关问题