首页 > 解决方案 > VBA 将结果 IF 语句作为列表放入一个单元格

问题描述

我想我的问题很简单,但我无法弄清楚。翻译:Ja=Yes / Nee=No

因此,如果单元格 A2 显示“Nee”,则 J2 中应该有一个句子,如果不是,则什么也不做。这对于每行中的所有其他单元格都是相同的。

我让我的代码运行它执行 if 语句。但它只需要合并到一个单元格中。

带有示例的 Excel 屏幕截图如下所示:

带有示例的Excel屏幕截图应该如何

代码:

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

标签: vbaclassif-statementrange

解决方案


您的代码可以简化为:

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

推荐阅读