首页 > 解决方案 > 在图表 application.caller 中选择图表和形状

问题描述

我可以使用以下 VBA 正常选择形状

ActiveSheet.Shapes(Application.Caller).Select

我想选择一个图表并塑造图表内部。我没有找到代码行。

我尝试了以下但没有成功。

ActiveSheet.ChartObjects(Application.Caller).Select

附加信息:

实际上我的图表已锁定,我想保持锁定状态并保护我的工作表(未选中编辑对象)。我在图表中插入了形状。我的目标是使用 application.caller 在锁定模式下编辑图表内的形状。所以我可以选择形状然后我就可以编辑它

我将在图表中有 10 多个形状,并且形状是通过随机名称的添加形状按钮动态添加的。所以我可以用它的名字来定位形状。这就是为什么我想用户 application.caller 自动选择它

谢谢

标签: excelvba

解决方案


Sub ChartClick()

    Dim cht As Chart, clr

    Set cht = ActiveSheet.Shapes(Application.Caller).Chart

    cht.Shapes("myShape").Select

'    With cht.Shapes("myShape")
'        clr = .Fill.ForeColor.RGB
'        .Fill.ForeColor.RGB = IIf(clr = vbRed, vbBlue, vbRed)
'    End With

End Sub

...假设您的宏链接到图表对象,而不是直接链接到图表中包含的形状。

您可以(并且应该)直接使用cht而不使用ActiveChart. 为了使用它,几乎不需要在 excel 中选择/激活任何东西。

如何避免在 Excel VBA 中使用 Select


推荐阅读