我甚至想弄清楚从哪里开始,所以朝着正确方向的任何推动都会有很大帮助。
我有一个地图电子表格,其中包含许多包含文本的不同矩形对象。当我单击矩形时,我想运行一个宏,并且希望该宏接收矩形中的文本作为参数。目的是使它显示一个userform
以及一个listbox
表,该表可以根据矩形中的文本进行自定义创建。我知道该怎么做,但是我不知道如何从形状对象中获取此属性。我想会是这样吗?
Sub Rectangle205_Click()
facilityName = Me.Text
End Sub
或
Sub AMacro(By Ref Target)
facilityName = Target.Text
End Sub
我对此一无所知,因此感谢您的帮助。
答案 0 :(得分:1)
您可以使用下面的第一个代码将特定工作表中的每个形状链接到get_text
代码:
Sub apply_script()
Dim sh As Shape
For Each sh In ActiveSheet.Shapes
sh.OnAction = "get_text"
Next
End Sub
然后使用此代码获取形状的文本:
Sub get_text()
MsgBox ActiveSheet.Shapes(Application.Caller).TextFrame.Characters.Caption
End Sub
仅编辑矩形:
Sub apply_script()
Dim sh As Shape
For Each sh In ActiveSheet.Shapes
If sh.AutoShapeType = 1 Then
sh.OnAction = "get_text"
End If
Next
End Sub