Excel VBA If单元格.值=.然后范围(选择).offset().价值问题



我在下面的代码上得到一个错误:

For Each cell In Range("H2", Selection.End(xlDown).End(xlDown).End(xlUp)).SpecialCells(xlCellTypeVisible)
If cell.Value = Range(Sheets("Mapping").Cells(4, x)).Value Then
Range(Selection).Offset(0, -7).Value = "=IF(LEFT(RC9,8)=Mapping!R8C1,""YES"",""NO"")"
Else
End If

这是一个更大的代码的一部分,我试图在H列的每个可见单元格与映射表上的单元格相比,如果正确,那么if语句将被添加到a列。

在尝试使用cell时,我遇到了类似的问题。值在另一个if语句中包含AND语句,见下文。在本例中,第1列的FOR语句类型相同。将列I中的每个值与映射表上的两个不同单元格进行比较,并将列A的值更改为YES。两行代码都在第三行中断,第二行代码也在第二行中断。

For Each cell In Range("I2", Selection.End(xlDown).End(xlDown).End(xlUp)).SpecialCells(xlCellTypeVisible)
If cell.Value = Range(Sheets("Mapping").Cells(4, x)).Value And cell.Value = Range(Sheets("Mapping").Cells(9, 1)).Value Then
Range(Selection).Offset(0, -7).Value = "YES"
Else
'do nothing

任何帮助都将非常感激。谢谢。

认为你正在尝试这样做:

For Each cell In Range("H2:H" & Range("H" & Rows.Count).End(xlUp).Row).SpecialCells(xlCellTypeVisible)
    If cell.Value = Sheets("Mapping").Cells(4, x).Value Then
        cell.Offset(0, -7).FormulaR1C1 = "=IF(LEFT(RC9,8)=Mapping!R8C1,""YES"",""NO"")"
    End If
Next

我不确定变量x包含什么-我只是假设您的代码是意味着要检查表"映射"的第4行,列x中的值。如果您期望4cell.Row,或者其他什么,那么您将需要进行必要的更改。

你的另一段代码可能是这样的:

If Sheets("Mapping").Cells(4, x).Value <> Sheets("Mapping").Cells(9, 1).Value Then
    'No processing required if Mapping![x]4 isn't the same as Mapping!A9
Else
    For Each cell In Range("I2:I" & Range("I" & Rows.Count).End(xlUp).Row).SpecialCells(xlCellTypeVisible)
        If cell.Value = Sheets("Mapping").Cells(4, x).Value Then
            cell.Offset(0, -7).Value = "YES"
        End If
    Next
End If