获取点击形状的地址
Get address of clicked Shape
我正在寻找一种方法来在它的电子表格中获取单击形状的地址 (position/location)。
换句话说,我想获取在工作表上单击的形状的地址。
我正在使用此代码找出单击形状的名称 & ID,它工作正常:
Dim CallingShapeName As Variant
Dim CallingShapeID As Variant
CallingShapeName = ActiveSheet.Shapes(Application.Caller).Name
Debug.Print CallingShapeName
CallingShapeID = ActiveSheet.Shapes(Application.Caller).ID
Debug.Print CallingShapeID
但是当我尝试使用此代码获取单击形状的地址时,它不起作用:
Dim ShapeAddress As Range
Set ShapeAddress = ActiveSheet.Shapes.Range(ActiveSheet.Shapes(Application.Caller).TopLeftCell.Address)
Debug.Print ShapeAddress
方法是将点击的形状分配给一个变量,然后您可以使用该变量访问其属性,如
Sub Rectangle1_Click()
Dim s As Shape
'assign object variable to clicked shape
Set s = ActiveSheet.Shapes(Application.Caller)
'then access its properties
Debug.Print s.Name
Debug.Print s.TopLeftCell.Address
Debug.Print s.BottomRightCell.Address
'etc
End Sub
我正在寻找一种方法来在它的电子表格中获取单击形状的地址 (position/location)。
换句话说,我想获取在工作表上单击的形状的地址。
我正在使用此代码找出单击形状的名称 & ID,它工作正常:
Dim CallingShapeName As Variant
Dim CallingShapeID As Variant
CallingShapeName = ActiveSheet.Shapes(Application.Caller).Name
Debug.Print CallingShapeName
CallingShapeID = ActiveSheet.Shapes(Application.Caller).ID
Debug.Print CallingShapeID
但是当我尝试使用此代码获取单击形状的地址时,它不起作用:
Dim ShapeAddress As Range
Set ShapeAddress = ActiveSheet.Shapes.Range(ActiveSheet.Shapes(Application.Caller).TopLeftCell.Address)
Debug.Print ShapeAddress
方法是将点击的形状分配给一个变量,然后您可以使用该变量访问其属性,如
Sub Rectangle1_Click()
Dim s As Shape
'assign object variable to clicked shape
Set s = ActiveSheet.Shapes(Application.Caller)
'then access its properties
Debug.Print s.Name
Debug.Print s.TopLeftCell.Address
Debug.Print s.BottomRightCell.Address
'etc
End Sub