我有以下代码可以使用
Sub TestMe()
Dim crt As ChartObject
Dim shp_Shape As Shape
Dim chartX As Chart
For Each crt In ActiveSheet.ChartObjects
Set chartX = crt.Chart
For Each shp_Shape In chartX.Shapes
If shp_Shape.Type = msoTextBox Then
shp_Shape.Select
MsgBox (Selection.Formula)
End If
Next
Next
End Sub
我想要做的是简化代码,所以我不必选择shp_Shape对象。 像msgbox(shp_Shape.Formula)
之类的东西我希望能够在不必选择任何内容的情况下阅读此公式。 这样,即使工作表被隐藏或图表/工作表受到保护,我也可以获得该属性。
有什么想法吗?
答案 0 :(得分:2)
msoTextBox
形状没有.Formula
属性。您需要的是TextFrame2.TextRange.Text
试试这个
Sub TestMe()
Dim crt As ChartObject
Dim shp_Shape As Shape
Dim chartX As Chart
For Each crt In ActiveSheet.ChartObjects
Set chartX = crt.Chart
For Each shp_Shape In chartX.Shapes
If shp_Shape.Type = msoTextBox Then
MsgBox shp_Shape.TextFrame2.TextRange.Text
End If
Next
Next
End Sub
<强> SCREENSHOT 强>
从评论中跟进
如果您的msoTextBox
形状与公式相关联,则需要以下
shp_Shape.DrawingObject.Formula