图表中的TextBox公式 - 如何在不选择的情况下引用它?

时间:2013-11-25 10:47:17

标签: vba excel-vba charts textbox excel-formula

我有以下代码可以使用

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)

之类的东西

我希望能够在不必选择任何内容的情况下阅读此公式。 这样,即使工作表被隐藏或图表/工作表受到保护,我也可以获得该属性。

有什么想法吗?

1 个答案:

答案 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

enter image description here

从评论中跟进

如果您的msoTextBox形状与公式相关联,则需要以下

shp_Shape.DrawingObject.Formula