Как обращаться к фигурам в модуле

Я создал разные формы в 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 

Существует гораздо более простой способ сделать «кнопки» в VBA (я предполагаю, что это то, чего вы пытаетесь достичь)

Прежде всего, в модуле создайте код «Open Worksheet»:

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

Затем щелкните правой кнопкой мыши вашу фигуру, выберите Assign Macro и назначьте Open_Sheet2 этой форме. Теперь, когда он щелкнут, он откроет Sheet2

Давайте будем гением компьютера.