将文本框声明为全局变量,以便可以重用它

时间:2014-01-14 15:35:32

标签: excel-vba excel-2010 vba excel

我正在使用VBA在Excel中创建WBS图。该图表将包含主工作表中的多个文本块。我使用宏创建了一个文本框。

我会多次使用此文本框。是否可以分配变量并重复使用它?

1 个答案:

答案 0 :(得分:0)

如果你想要一个全局变量,将它放在模块的顶部,紧接着Option Explicit:Dim shp As Shape

然后试试这个:

Option Explicit
Dim shp As Shape

Sub getTextbox()

    Dim myShapes As Shapes
    Set myShapes = ThisWorkbook.Worksheets(1).Shapes

    For Each shp In myShapes
        If shp.Type = msoTextBox Then
            Debug.Print shp.Name
            Debug.Print shp.TextFrame.Characters.Text
            shp.TextFrame.Characters.Text = "Hello World!"

            'exit upon finding the right text box to
            If shp.Name = "TextBox 2" Then
                Exit For
            End If
        End If
    Next
End Sub

Sub testName()
    Debug.Print shp.Name
End Sub

您正在寻找包含可以在工作表上的许多内容的形状。然后测试每个以查看它是否是正确的类型。您也可以按名称进行测试。

然后运行子TestName,它仍然应该在内存中有文本框。