читать Cellvalue через диапазон и записывать в другой диапазон - PullRequest
0 голосов
/ 29 мая 2018

Я пытаюсь создать скрипт VBA, который проверяет все ячейки между B2 и B60 на наличие текста «Ja», что на норвежском языке «да».
Как мне сделать это немного проще, чем сделать команду «if» длякаждая ячейка?
Я хочу, чтобы, если ячейка содержала «ja» (да), тогда пишите в столбец D и то же число.
т.е.B1,2,3,4,5 содержит "ja", мне нужно взять предыдущее значение ячейки в D1.2,3,4,5 и добавить к нему еще одну цифру + 1.
Если ничего не найдено вB (то есть. Ложь) ему нужно написать «NEI» в текущей ячейке, и если «NEI» (нет) найден в этой ячейке, он добавляет +1 к столбцу E

Sub Macro2()
Dim celltxt As String
Dim a As Variant
   If IsEmpty(Range("B2").Value) = True Then
    Cells(2, 2).Value = "NEI"
   End If
celltxt = ActiveSheet.Range("B2").Text
If InStr(1, celltxt, "ja") Then
a = Cells(2, 1).Value
'write to cell
Cells(2, 4).Value = Cells(2, 4) + 1
Else
'antall Cw'er vedkommende IKKE har deltatt på
Cells(2, 5).Value = Cells(2, 5) + 1
End If
   If IsEmpty(Range("B3").Value) = True Then
    Cells(3, 2).Value = "NEI"
   End If
celltxt = ActiveSheet.Range("B3").Text
If InStr(1, celltxt, "ja") Then
a = Cells(3, 1).Value
'write to cell
Cells(3, 4).Value = Cells(3, 4) + 1
Else
'antall Cw'er vedkommende IKKE har deltatt på
Cells(3, 5).Value = Cells(3, 5) + 1
End If


End Sub
Sub slettingALL()
    Range("D2:E55").Select
    Selection.ClearContents
End Sub
Sub slettingdeltakelse()
    Range("B2:B60").Select
    Selection.ClearContents
End Sub

1 Ответ

0 голосов
/ 29 мая 2018

Следующий код использует цикл For Each и оператор IF THEN ELSE для проверки значения «JA» в диапазоне B2: B60.

Если он находит «JA», он просматривает два столбца длясправа от текущего местоположения i, и добавляет «+1» к значению над ним.Если он ничего не находит, он пишет «NEI» в текущее местоположение i, а затем перемещает три столбца вправо и добавляет +1 к значению над ним.

Sub Macro2()

For Each i In Range(Cells(2, 2), Cells(60, 2))
    If i.Value = "JA" Then
        i.Offset(0, 2).Value = i.Offset(-1, 2).Value + 1
    Else
        i.Value = "NEI"
        i.Offset(0, 3).Value = i.Offset(-1, 3).Value + 1
    End If

Next i

End Sub

Пожалуйста, дайте мне знать, если этот кодне работает для ваших целей.

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