2016-12-20 29 views
0

因此,我在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 

回答

3

假設xData是一個Range變量,您有幾個選項。您可以使用:

If IsEmpty(Cells(xData.row, 1) 

...其中1是您要檢查的列。您還可以使用:

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

...其中-2是列數來算的外部數據列的左側去,你要檢查的值。最後,你可以使用:

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

...其中"A"是要檢查的列的字母。每種方法都有其優點和缺點 - Cells方法允許您使用列號而不是字母,但有點難於閱讀,Offset方法允許您再次使用數字,但如果更改xData的列並忘記更改偏移值可能會導致錯誤,並且Range方法更易於閱讀,但確實需要硬編碼的字母值。

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 
+0

爲什麼你需要'v'?不會'如果xdata.Value <>「」那麼'結​​果相同? –

+1

@ShaiRado你是對的....這將縮短一行代碼。 –

相關問題