我想按特定的名称遍历形状列表,这些名称在Excel的单元格列表中给出。为简化起见,这是仅引用一个形状名称的问题:
形状的名称为“ Star1”,并在A1单元格中给出。
在VBA代码中,我可以通过ActiveSheet.Shapes("Star1").Select
或ActiveSheet.Shapes(1).Select
直接选择形状。但是,我想通过引用单元格A1中给出的名称间接选择形状
ActiveSheet.Shapes(Indirect("A1")).Select
此代码不起作用,不知道如何解决。
答案 0 :(得分:1)
您要寻找的语法如下:-
Worksheets("Sheet1").Shapes(Worksheets("Sheet2").Cells(1, 1).Value).Select
or, if you prefer,
Worksheets("Sheet1").Shapes(Worksheets("Sheet2").Cells(1, "A").Value).Select
or
Worksheets("Sheet1").Shapes(Worksheets("Sheet2").Range("A1").Value).Select
在上述所有情况下,形状都在Sheet1上,名称在Sheet2上。这两个项目可能在同一张纸上,并且两者(或两者)中的任何一个都可以是ActiveSheet,并可以进行相应处理。