首页 > 解决方案 > 如何通过从单元格中获取形状名称来引用形状?

问题描述

我想遍历 Excel 中单元格列表中给出的特定名称的形状列表。为简化起见,这里是仅引用一个形状的名称的问题:

形状的名称是“Star1”,在单元格 A1 中给出。

在 VBA 代码中,我可以通过ActiveSheet.Shapes("Star1").Select或直接选择形状ActiveSheet.Shapes(1).Select。但是,我想通过引用单元格 A1 中给出的名称来间接选择形状

ActiveSheet.Shapes(Indirect("A1")).Select

此代码不起作用,想知道如何修复它。

标签: excelvbareferenceshapes

解决方案


您正在寻找的语法如下所示:-

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 并相应地进行处理。


推荐阅读