VBA如何重命名工作表中的所有button

我试图执行一个非常简单的过程,我想所有的button(从工作表复制到另一个)被重命名为“button”和数字。

不知何故,所有的button(这是非active-x)除了前两个被重命名。

我写的代码是:

Dim button As button i = 1 For Each button In ws.Buttons button.Name = "Button " & i i = i + 1 Next button 

枚举集合时更改集合通常不是一个好主意。 这将显示名称的变化也影响for each枚举,所以一些button被跳过。

尝试以下任一方法:

  • 按索引访问Buttons ,而不是For Each
  • 将所有对Button的引用复制到一个数组(即获取集合的快照),然后遍历数组更改名称。

我也想重命名我的活动工作表上的所有(非激活x)button。 我喜欢通过索引访问它们,因为button被添加,删除,更改等,我可能有代码名称“button3”和“button6”,没有其他人。 因此,通过代码名称访问它们是不可靠的。 有关如何通过索引更改button标题的任何可靠信息将是很有帮助的。 非常感谢!