Не могу добавить вторую кнопку пользователя программно - PullRequest
0 голосов
/ 20 декабря 2018

Я пытаюсь программно добавить несколько кнопок на несколько листов, но это работает только для одного из листов («Лист1»).Ниже приведен мой код, мне интересно, есть ли что-нибудь еще, что я могу сделать, что позволит мне добавлять кнопки в Sheet2 и любые другие.Спасибо!

Sub button_maker(wb As Workbook)
Dim r As Range
Set r = Selection
    Worksheets("Sheet1").Buttons.Add(27, 30, 100, 20).Select
    With Selection
        .OnAction = "'" & wb.Name & "'" & "!" & "Button9_click"
        .Characters.Text = "Input Sales"
    End With
r.Select

End Sub


Sub button_maker2(wb As Workbook)

Dim d As Range
Set d = Selection
    wb.Worksheets("Sheet2").Buttons.Add(1065, 1, 60, 20).Select
    With Selection
        .Characters.Text = "Input Sales"
        .OnAction = "'" & wb.Name & "'" & "!" & "Button9_click"
    End With

End Sub

Ответы [ 2 ]

0 голосов
/ 20 декабря 2018

Попробуйте

Sub test()
    button_maker ThisWorkbook, Sheets(1)
    button_maker ThisWorkbook, Sheets(2)
End Sub
Sub button_maker(wb As Workbook, Ws As Worksheet)
Dim r As Range
Dim Bt As Shape

    Set Bt = Ws.Shapes.AddFormControl(xlButtonControl, 27, 30, 100, 20)
    With Bt
        .OnAction = "'" & wb.Name & "'" & "!" & "Button9_click"
        .TextFrame.Characters.Text = "Input Sales"
    End With


End Sub
0 голосов
/ 20 декабря 2018

Код ниже добавит кнопку на 3 первых рабочих листа вашей активной рабочей книги.

Option Explicit

Sub button_maker()
Dim Bt0 As Button
Dim Wb0 As Workbook: Set Wb0 = ActiveWorkbook
Dim i As Integer

For i = 1 To 3
    Set Bt0 = Wb0.Sheets(i).Buttons.Add(27, 30, 100, 20)
    Bt0.OnAction = ""
    Bt0.Caption = "Input Sales"
    'Bt0.Name = "" if you want to name it for future reference
Next i

End Sub  

Я не уверен, какова ваша цель, но вы можете поиграть с этим кодом и адаптировать его к своемунеобходимо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...