Определить листы функции MoveButton в VBA - PullRequest
0 голосов
/ 17 января 2020

У меня есть файл Excel, состоящий из 5 Sheets.
В Sheet1, Sheet2 и Sheet3 У меня есть Button 1.

Как только пользователь нажимает на одну из этих кнопок, все Button 1 должны перейти из своего текущего положения в диапазон D9:E11.
Независимо от того, на каком листе пользователь нажимает кнопку.

Я пытался go с решением из здесь , но оно работает только при наличии двух листов.
Я пытался добавить 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?

1 Ответ

0 голосов
/ 17 января 2020

Процедура, как она есть, допускает максимум три параметра.

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...