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

Excel VBA如何重命名工作表中的所有按钮,excel,vba,button,rename,Excel,Vba,Button,Rename,我试图执行一个非常简单的过程,在这个过程中,我希望所有的按钮(从一个工作表复制到另一个工作表)都被重命名为“按钮”&编号 不知何故,除前两个按钮外,所有按钮(非活动-x)都被重命名 我写的代码是: Dim button As button i = 1 For Each button In ws.Buttons button.Name = "Button " & i i = i + 1 Next button 在枚举集合时更改集合通常是个坏主意。名称更改似乎也会影响每个枚

我试图执行一个非常简单的过程,在这个过程中,我希望所有的按钮(从一个工作表复制到另一个工作表)都被重命名为“按钮”&编号

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

我写的代码是:

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

在枚举集合时更改集合通常是个坏主意。名称更改似乎也会影响每个枚举数的
,因此某些按钮会被跳过

请尝试以下操作之一:

  • 按索引访问
    按钮
    ,而不是对每个按钮使用
  • 将对按钮的所有引用复制到一个数组(即拍摄集合的快照),然后在数组中循环更改名称

在枚举集合时更改集合通常是个坏主意。名称更改似乎也会影响每个
枚举数的
,因此某些按钮会被跳过

请尝试以下操作之一:

  • 按索引访问
    按钮
    ,而不是对每个按钮使用
  • 将对按钮的所有引用复制到一个数组(即拍摄集合的快照),然后在数组中循环更改名称

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

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

如果您确定这两个按钮确实属于
ws.buttons
,请尝试a)按索引访问
按钮,而不是对每个按钮使用
,以及b)将对按钮的所有引用复制到数组中,然后在数组中循环更改名称。好的,按索引寻址按钮是有效的。非常感谢!很乐意帮忙。我现在将我的评论作为答案发布,以便将此问题标记为已解决。请在某一点检查接受勾选:)如果您确定这两个按钮确实属于
ws.buttons
,请尝试a)通过索引访问
按钮
,而不是使用每个按钮的
,以及b)将对按钮的所有引用复制到数组中,然后在数组中循环更改名称。确定,按索引对按钮寻址有效。非常感谢!很乐意帮忙。我现在将我的评论作为答案发布,以便将此问题标记为已解决。请在某一点勾选接受勾选:)