使用 VBA 在 Excel 中选择一个形状
Selecting a shape in Excel with VBA
我正在尝试使用 VBA 按名称 select 形状。在我的 sheet 中,我有 10 个形状,名称为 1 到 10,我想要一个特定的形状。出于某种原因,excel select 用我的代码生成的形状似乎不是我告诉它的名称 select 的形状。据我所知,它选择的形状是随机的。这是我的代码(x 值应该检索我从 1 到 10 输入的数字值):
Sub FindTheShape()
Sheets("Fleet 1").Select
Dim x As Long
x = ActiveSheet.Range("$A00").End(xlUp).Value
ActiveSheet.Shapes(x).Select
End Sub
请帮忙,任何想法都非常感谢。
你的 x 给出的是索引号而不是名称,当你的形状被命名为 1 到 10 时,从你的 x 中创建一个字符串:
ActiveSheet.Shapes(CStr(x)).Select
As far as I can tell, the shape that it chooses is random.
发生这种情况是因为当您使用数值时,您实际上指的是 Shapes
集合中某个形状的位置。当您使用字符串值时,您指的是形状的名称。床单也是如此。看我的 answer.
使用此示例代码来选择形状:
Sub FindTheShape()
Dim sht as Worksheet
Set sht = ThisWorkbook.Worksheets("Fleet 1")
Dim sObject as shape
For Each sObject in ActiveSheet.Shapes
If sObject.Name = "MyRectangle" then
sObject.Select
End If
Next
End Sub
我正在尝试使用 VBA 按名称 select 形状。在我的 sheet 中,我有 10 个形状,名称为 1 到 10,我想要一个特定的形状。出于某种原因,excel select 用我的代码生成的形状似乎不是我告诉它的名称 select 的形状。据我所知,它选择的形状是随机的。这是我的代码(x 值应该检索我从 1 到 10 输入的数字值):
Sub FindTheShape()
Sheets("Fleet 1").Select
Dim x As Long
x = ActiveSheet.Range("$A00").End(xlUp).Value
ActiveSheet.Shapes(x).Select
End Sub
请帮忙,任何想法都非常感谢。
你的 x 给出的是索引号而不是名称,当你的形状被命名为 1 到 10 时,从你的 x 中创建一个字符串:
ActiveSheet.Shapes(CStr(x)).Select
As far as I can tell, the shape that it chooses is random.
发生这种情况是因为当您使用数值时,您实际上指的是 Shapes
集合中某个形状的位置。当您使用字符串值时,您指的是形状的名称。床单也是如此。看我的 answer.
使用此示例代码来选择形状:
Sub FindTheShape()
Dim sht as Worksheet
Set sht = ThisWorkbook.Worksheets("Fleet 1")
Dim sObject as shape
For Each sObject in ActiveSheet.Shapes
If sObject.Name = "MyRectangle" then
sObject.Select
End If
Next
End Sub