如何引用模块中的形状

时间:2014-06-28 11:31:01

标签: excel vba excel-vba

我在excel中创建了不同的形状,并为其指定了一个宏,用作激活另一个工作表。我想将所有这些放在一个宏下,然后将其分配给具有不同链接属性的不同形状。但是这段代码不起作用,因为显然我做的事情很愚蠢。有人可以帮忙吗?

Dim shp As ShapeRange, ws As Sheets, i As Integer
Set ws = ActiveWorkbook.Sheets(Array("Introduction", "S1 Fuel Consumption", "S1 Fugitive", "S2 Electricity Consumption"))
Set shp = ws(2).Shapes.Range(Array("Chevron1", "Chevron2"))

Select Case shp(i)

Case shp(1)
ws(1).Activate

Case shp(2)
ws(3).Activate

End Select

End Sub

1 个答案:

答案 0 :(得分:1)

有一种更简单的方法可以做"按钮"在VBA(我认为这是你想要实现的目标)

首先,在一个模块中,创建"打开工作表"代码:

Sub Open_Sheet2
Sheets("Sheet2").visible = True
Sheets("Sheet2").Activate
End Sub

然后右键单击您的形状,选择Assign Macro并将Open_Sheet2指定给该形状。现在点击它时,它将打开Sheet2