Найти значение в ячейке B (x) и заменить значение в C (x). Смещение на 1 - PullRequest
0 голосов
/ 17 марта 2020

Я хотел бы попросить помощи Excel VB.

У меня есть столбец B в диапазоне B1: B31. Текст содержит слова «Включено» или «Отключено». Моя цель состоит в том, чтобы при нажатии кнопки код проходил через все значения в диапазоне B1: B31, и если он находит текст «Включен», он заменяет следующий столбец (ту же строку) на ценность. Я считаю, что это смещение (0,1).

Пример. Таким образом, поскольку код сканирует диапазон, он попадает в ячейку B3, если он найдет слово «Включено» в этой ячейке, то он вставит] значение из оценки времени по умолчанию в ячейку C3.

Здесь это иллюстрация: enter image description here

Ответы [ 2 ]

1 голос
/ 17 марта 2020

Вместо использования смещения вы можете сделать это в этом случае следующим образом:

Sub SetIt()

    Dim rg As Range
    Set rg = Range("B1:C31")

    Dim sngRow As Range
    For Each sngRow In rg.Rows
        If sngRow.Cells(1, 1).Value = "Enabled" Then sngRow.Cells(1, 2).Value = 1
    Next

End Sub

При смещении это будет выглядеть как

'With offset
Sub UseOffset()

    Dim rg As Range
    Set rg = Range("B1:B31")

    Dim sngCell As Range
    For Each sngCell In rg
        If sngCell.Value = "Enabled" Then sngCell.Offset(0, 1).Value = 1
    Next

End Sub

Третий способ - использовать массивы

'With Array
Sub UseArr()

    Dim rg As Range
    Set rg = Range("B1:C31")

    Dim vDat As Variant
    vDat = rg.value2

    Dim i As Long
    For i = LBound(vDat) To UBound(vDat)
        If vDat(i, 1) = "Enabled" Then vDat(i, 2) = 1
    Next i

    rg.value2 = vDat
End Sub
0 голосов
/ 17 марта 2020
Sub MatchValue()
Dim i As Integer
Dim cellValue As String
Dim compValue As String
i = 2
compValue = "ENABLED"
Do While i < 34
cellValue = Sheet1.Cells(i, 2).Value
If UCase(cellValue) = compValue Then
Sheet1.Cells(i, 3) = "True"
Else
Sheet1.Cells(i, 3) = "False"
End If
i = i + 1
Loop
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...