检查来自同一行但不同列的单元格是否为空

所以我有一个Excel中的小脚本,通过列并检查单元格的值,然后检查同一行,但不同列的单元格。 例如:我通过C列,如果C8不是空的,那么我检查A8是否为空。 但是我不知道如何检查同一行的单元格。 这是我的代码:

For Each xdata In range_data If IsEmpty(xdata.Value) = False Then If IsEmpty(???????.Value) = True Then ...... ElseIf IsEmpty(???????.Value) = False Then ..... End If End If Next xdata 

假设xData是一个Rangevariables,你有几个选项。 您可以使用:

 If IsEmpty(Cells(xData.row, 1) 

…其中1是您要检查的列。 你也可以使用:

 If IsEmpty(xData.Offset(0,-2)) 

…其中-2是要计算到xData列左侧以达到要检查的值的列数。 最后,你可以使用:

 If IsEmpty(Range("A" & xData.row)) 

…其中"A"是你想检查的列的字母。 每种方法都有其优点和缺点 – Cells方法允许您使用列号而不是字母,但有点难以阅读, Offset方法允许您再次使用数字,但如果更改了xData的列并忘记更改偏移值可能会导致错误,并且Range方法更易于阅读,但确实需要硬编码的字母值。

有很多方法…这里是一个:

 Sub Silva() Dim range_data As Range, xdata As Range Set range_data = Range("C1:C10") For Each xdata In range_data v = xdata.Value If v <> "" Then If xdata.offfset(0, -2).Value <> "" Then 'do something Else 'do something else End If End If Next xdata End Sub