1

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

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

我写的代码是:

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

2 回答 2

1

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

尝试以下任一方法:

  • Buttons按索引访问,而不是使用For Each.
  • 将对 Buttons 的所有引用复制到一个数组(即拍摄集合的快照),然后循环遍历数组更改名称。
于 2013-06-11T10:55:09.190 回答
0

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

于 2015-08-19T16:09:11.687 回答