如何引用模块中的形状

我已经在Excel中创build了不同的形状,并且已经为它分配了一个macros来激活另一个表单。 我想把所有这些放在一个macros下面,然后把它分配给不同的链接属性的形状。 但是,这个代码不起作用,因为显然我正在做一些愚蠢的事情。 有人可以帮忙吗?

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 

有一个更简单的方法来做VBA中的“button”(我认为这是你想要实现的)

首先,在模块中创build“Open Worksheet”代码:

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

然后右键单击您的形状,selectAssign Macro并将Open_Sheet2分配给该形状。 现在,当它被点击时,它将打开Sheet2