Создание функции Dynami c для создания флажков - PullRequest
0 голосов
/ 18 января 2020

Я пытаюсь создать динамическую c функцию, в которую я могу передать диапазон, и она сгенерирует флажок в ячейках в этом диапазоне. У меня он генерирует чекбоксы, но я не могу понять, как изменить его, чтобы использовать динамический диапазон c, который передается в качестве параметра при вызове подпрограммы.

Как мне изменить свою подпрограмму на в состоянии сделать это? Вот мой код пока ...

Public Sub chkPopulateFields(R As Range)
    Dim chk As Variant
    Dim t As Range
    Dim i As Integer

    Application.ScreenUpdating = False

    With Me.Worksheets(1)
        .CheckBoxes.Delete
        For i = 4 To 10
            Set t = .Range(Cells(i, 3), Cells(i, 3))
            Set chk = .CheckBoxes.Add(t.Left, t.Top, t.Width, t.Height)
        Next
    End With

    Application.ScreenUpdating = True
End Sub

1 Ответ

2 голосов
/ 18 января 2020

Я пытаюсь создать динамическую c функцию, в которую я могу передать диапазон, и она сгенерирует флажок в ячейках в этом диапазоне.

Вы можете использовать For Each до l oop через каждую ячейку в диапазоне. Также я добавил еще один параметр ws As Worksheet, чтобы вы могли указать целевой лист.

Это то, что вы пытаетесь?

Option Explicit

Sub Sample()
    chkPopulateFields Range("A1:C4"), Sheet1
End Sub

Public Sub chkPopulateFields(R As Range, ws As Worksheet)
    Dim rng As Range
    Dim chk As Object

    With ws
        .CheckBoxes.Delete
        For Each rng In R
            Set chk = .CheckBoxes.Add(rng.Left, rng.Top, rng.Width, rng.Height)
        Next
    End With
End Sub

enter image description here

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