Цикл VBA со значениями ячеек - PullRequest
0 голосов
/ 22 февраля 2019

Я довольно новичок в vba и столкнулся с проблемой, решение которой до сих пор не смог найти.У меня есть два списка имен на листе «Источник», которые я хочу использовать для каждого цикла.Как я могу обратиться к этим ячейкам, используя правильный Рабочий лист?

Я хочу получить доступ к комбинированным полям с именем «Box имя переменной » (например, BoxIAA) и связанным текстовым полям в форме « имя переменной значение» (например, IAAvalue)и проверьте содержимое всех этих объектов, удалив две ячейки справа (например, D3: E3 или G5: H5) в листе «Источник», если объекты пусты.

Моя попытка была:

Dim rng As Range, cell As Range
Set rng = Range(Sheets("Source").Range("C2:C4"), Sheets("Source").Range("F2:F5"))


For Each cell In rng
    If "Box" & cell.Value <> "" Then

        MsgBox "The value is " & "Box" & Range(cell).Value

    Else If
        'Delete two cells to the right in ws "Source"
    End If  

Next cell

Мне известно, что я не обращаюсь к Cells C2: C4 в источнике рабочего листа правильно, но я действительно не знаю, как это сделать правильно.Как я могу получить доступ к содержимому исходных ячеек и обратиться к содержимому / ячейкам для дальнейшего использования?

1 Ответ

0 голосов
/ 22 февраля 2019

Это то, что вы пытаетесь ( не проверено )?

Sub Sample()
    Dim rng As Range
    Dim aCell As Range

    On Error GoTo Whoa '<~~ Need this in case it couldn't find the control

    Set rng = Sheets("Source").Range("C2:C4,F2:F5")

    For Each aCell In rng
        '~~> Use Controls() to work with the control
        With Me.Controls("Box" & aCell.Value)
            If .Value <> "" Then
                MsgBox .Value
            Else
                '~~> Do what you want
                Sheets("Source").Range(aCell.Offset(, 1), _
                                       aCell.Offset(, 2)).Delete shift:=xlLeft
            End If
        End With
    Next aCell

    Exit Sub
Whoa:
    MsgBox Err.Description
End Sub

Вместо If .Value <> "" Then вы также можете использовать If .ListIndex <> -1 Then.Я предполагаю, что в выпадающем списке нет пустых значений.

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