excel - 在图表 application.caller 中选择图表和形状
问题描述
我可以使用以下 VBA 正常选择形状
ActiveSheet.Shapes(Application.Caller).Select
我想选择一个图表并塑造图表内部。我没有找到代码行。
我尝试了以下但没有成功。
ActiveSheet.ChartObjects(Application.Caller).Select
附加信息:
实际上我的图表已锁定,我想保持锁定状态并保护我的工作表(未选中编辑对象)。我在图表中插入了形状。我的目标是使用 application.caller 在锁定模式下编辑图表内的形状。所以我可以选择形状然后我就可以编辑它
我将在图表中有 10 多个形状,并且形状是通过随机名称的添加形状按钮动态添加的。所以我可以用它的名字来定位形状。这就是为什么我想用户 application.caller 自动选择它
谢谢
解决方案
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 中选择/激活任何东西。
推荐阅读
- python - 获取按名称分组的商品的最低价格
- c# - 返回负数的斐波那契随机数生成器
- java - javaFX鼠标事件过滤器
- vue.js - Vuex:我应该在用户点击保存按钮之前更新状态吗?
- ios - 如何使用 Swift 显示和隐藏 UIAlertAction 按钮
- symfony - 如何禁用 EntityType 实体的自动加载?
- javascript - _rnAppleHealthKit.default.initHealthKit 不是函数-> rn-apple-healthkit
- android - 试图一个接一个地显示吐司消息
- c++ - 为什么 HowardHinnant 的 date.h 库中没有 to_stream 和 from_stream 格式的毫秒标志
- php - Laravel 5.5 任务调度程序似乎没有循环遍历我的所有命令