簡體   English   中英

在 VBA 中定義 MoveButton 函數表

[英]Define sheets of MoveButton function in VBA

我有一個由5 Sheets組成的 Excel 文件。
Sheet1Sheet2Sheet3我有一個Button 1

一旦用戶單擊這些按鈕之一,所有Button 1都應從其當前位置移動到范圍D9:E11
無論用戶在哪個工作表中單擊按鈕。

我試圖從這里開始使用解決方案,但只有當我有兩張紙時它才有效。
我試圖添加Sheet3但它沒有用:

錯誤數量的參數或無效的屬性分配

Sub Sample()
    MoveButton Sheet1, "Button 1", Sheet2, Sheet3
End Sub

Sub MoveButton(sh As Worksheet, btnName As String, Optional shB As Worksheet)
    Dim Range_Position As Range

    Set Range_Position = sh.Range("D9:E11")

    With sh.Buttons(btnName)
        .Top = Range_Position.Top
        .Left = Range_Position.Left
        .Width = Range_Position.Width
        .Height = Range_Position.Height
        .Text = "Button 1"
    End With

    If Not shB Is Nothing Then
        With shB.Buttons(btnName)
            .Top = Range_Position.Top
            .Left = Range_Position.Left
            .Width = Range_Position.Width
            .Height = Range_Position.Height
            .Text = "Button 1"
        End With
    End If
End Sub

我需要在代碼中更改什么來指定我想要將Button 1移動到范圍D9:E11每個工作表?

程序本身只允許最多三個參數。

MoveButton(sh As Worksheet, btnName As String, Optional shB As Worksheet)

請注意,MoveButton 后面的逗號當前分隔了三個參數。

您可以更改它或至少調用它三次。

如果您決定修改調用者:

Sub Sample()
    MoveButton Sheet1, "Button 1", Sheet2
    MoveButton Sheet3, "Button 1", Sheet4
    MoveButton Sheet5, "Button 1"
End Sub

重新閱讀問題,如果按鈕僅在提到的工作表中,請使用:

Sub Sample()
    MoveButton Sheet1, "Button 1", Sheet2
    MoveButton Sheet3, "Button 1"
End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM