VBA помещает результаты IF IF в одну ячейку в виде списка - PullRequest
0 голосов
/ 06 марта 2019

Мой вопрос прост, я думаю, но я не могу понять это. Перевод: Ja = Да / Nee = Нет

Таким образом, если ячейка A2 говорит «Ни», в J2 должно быть предложение, если нет, то ничего не делайте. То же самое для всех остальных ячеек в каждой строке.

Мой код работает так, что он выполняет операторы if. НО это просто нужно объединить в одну ячейку.

Снимок экрана Excel с примером того, как это должно быть, выглядит следующим образом:

Excel screenshot with example how it should be

Код:

Sub SampleMacro()
' Get the last row
Dim startRow As Long, lastRow As Long
startRow = 2
lastRow = Sheet1.Cells(Sheet1.Rows.Count, 1).End(xlUp).Row

Dim i As Long, Wat As String
Dim j As Long, Waarom As String

Dim sClass As String
Dim tClass As String

' Go through the parameter columns
For i = startRow To lastRow
    Wat = Sheet1.Range("A" & i).Value

    ' Check parameters and classify accordingly
    If Wat = "Nee" Then
        sClass = " Er wordt in de cookie policy niet uitgelegd wat cookies zijn."
    Else
        sClass = ""
    End If

For j = startRow To lastRow
    Waarom = Sheet1.Range("B" & j).Value

    If Waarom = "Nee" Then
        tClass = "  Waarom ze nuttig zijn is hier niet omschreven."
    Else
        tClass = ""
    End If

     ' Write out the class to columns
    Sheet1.Range("J" & i).Value = sClass
    Sheet1.Range("K" & j).Value = tClass

Next

Next

End Sub

Ответы [ 2 ]

0 голосов
/ 06 марта 2019

Вы можете попробовать поместить эту формулу в столбец J, чтобы избежать использования макросов

=IF(A2="Nee",IF(B2="Nee"," Er wordt in de cookie policy niet uitgelegd wat cookies zijn." &CHAR(10)& "  Waarom ze nuttig zijn is hier niet omschreven."," Er wordt in de cookie policy niet uitgelegd wat cookies zijn."),"")
0 голосов
/ 06 марта 2019

Ваш код может быть упрощен до этого:

For i = startRow To lastRow
    ' Check parameters and classify accordingly
    If Sheet1.Range("A" & i).Value = "Nee" Then
        Sheet1.Range("J" & i).Value = " Er wordt in de cookie policy niet uitgelegd wat cookies zijn."
    End If
    ' If there's Nee in B column, then append next sentence with new line (Chr(10))
    If Sheet1.Range("B" & i).Value = "Nee" Then
        Sheet1.Range("J" & i).Value = Sheet1.Range("J" & i).Value & Chr(10) & "  Waarom ze nuttig zijn is hier niet omschreven."
    End If
Next
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...