所以我在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
答案 0 :(得分:3)
假设xData是Range变量,您有几个选项。您可以使用:
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
方法更容易阅读,但需要硬编码的字母值。
答案 1 :(得分:2)
有很多方法......这里有一个:
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