在每张纸上的同一单元格中按

时间:2018-12-28 17:42:55

标签: excel vba excel-vba

我需要在返回到首页的每张图纸的左上角(A1)放置一个按钮。我无法在所有工作表上添加它-它在第一张工作表之后停止。

以下是我的想法。

Sub addhome()
    Dim btn As Button
    Dim t As Range


    For Each sh In Worksheets

        Set t = sh.Range("A1")
        Set btn = sh.Buttons.Add(t.Left, t.Top, t.Width, t.Height)
        With btn
          .OnAction = "GotoHome"
          .Caption = "Home"
          .Name = "Home"
        End With    

    Next sh

    MsgBox ("done")
End Sub

当我打开一个新工作簿并制作一些虚拟工作表时,它可以工作,但是当我尝试在现有工作簿上进行工作时,它只会在第一工作表上添加一个按钮。

1 个答案:

答案 0 :(得分:0)

我找到了解决这种情况的方法-希望它将对以后的人有所帮助。

Sub addhome()

Dim btn As Button
Dim t As Range
Dim sh As Worksheet

For Each sh In Worksheets

    Debug.Print sh.Name
If sh.Name = "All" Then

Else

    Set t = sh.Range("A1")
    Set btn = sh.Buttons.Add(t.Left, t.Top, t.Width, t.Height)


    With btn
      .OnAction = "GotoHome"
      .Caption = "Home"
      .Name = "Home"
    End With
End If

Next sh



MsgBox ("done")

End Sub

我只是使用IF-THEN来避免问题表而打其他所有问题。希望我昨天会想到的。我知道可以使用更简单的方法来进行复制,但是我面临着寻找最普遍准确的方法的挑战。我认为这已经接近了。感谢您的所有帮助。