使用忽略false值子句的IF语句

时间:2017-05-25 09:50:46

标签: excel vba excel-vba

我在excel中有一个包含“是”和“否”的数据列表。

我需要一个IF语句,它只对具有“Yes”值的单元格起作用,并跳过任何具有“No”值的单元格。

对于上下文,我的IF语句的'value if true'子句是一个indexmatchmatch,它需要根据“是”或“否”返回表单中的值。

据我所知,这可能是一个使用VBA的简单解决方案,因此,如果任何人拥有基于Excel的解决方案或基于VBA的解决方案,他们将同样有所帮助。

如果需要,我可以将列和行添加到我正在使用的数据集中。

2 个答案:

答案 0 :(得分:1)

试试这个:

Sub YesNo()
Dim lRow As Long
Dim sht As Worksheet
Set sht = Worksheets("Tabelle1")

lRow = sht.Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To lRow
    If sht.Cells(i, 1).Value = "True" Then 'Modify Column
        'Your Code
    End If
Next i
End Sub

答案 1 :(得分:1)

使用VBA实现它

假设在表格中,你有

A   Yes
B   Yes
C   No
A   Yes
B   No
C   Yes
A   No
B   No

运行宏后,Sheet 2将只包含Sheet1中具有yes的那些行。请根据您的要求修改代码

Sub g()
Dim lastRow As Long
Dim sheet As Worksheet
Set sht = Worksheets("Sheet1")
Set sht1 = Worksheets("Sheet2")

lRow = sht.Cells(Rows.Count, 1).End(xlUp).Row
Dim j As Long
j = 1
For i = 1 To lRow

    If sht.Cells(i, 2).Value = "Yes" Then
        sht1.Cells(j, 1).Value = sht.Cells(i, 1).Value
        j = j + 1
    End If
Next i
End Sub