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

时间:2013-06-11 07:32:59

标签: excel vba button rename

我正在尝试执行一个非常简单的过程,我希望将所有按钮(从工作表复制到另一个按钮)重命名为“Button”&号。

不知何故,除前两个按钮之外的所有按钮(非活动-x)都被重命名。

我写的代码是:

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

2 个答案:

答案 0 :(得分:1)

在枚举时更改集合通常是一个坏主意。看起来名称更改也会影响for each枚举器,因此会跳过某些按钮。

请尝试以下任一方法:

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

答案 1 :(得分:0)

我还想重命名活动工作表上的所有(非活动x)按钮。我很乐意通过索引访问它们,因为当按钮被添加,删除,更改等时,我可能有代码名称“按钮3”和“按钮6”而没有其他代码。因此,通过代码名称访问它们是不可靠的。有关如何通过索引更改按钮标题的任何可靠信息都会非常有用。非常感谢!