2016-11-16 124 views
0

我在Excel中有一個計劃方案,使用VBA。在工作表中,我擁有所有的日子。我尋找代碼併爲單元格着色。但我想排除在文件中用'z'編碼的週末。 我有現在這樣:Excel VBA排除列

Dim CurCell As Object 
    For Each CurCell In ActiveWorkbook.ActiveSheet.Range("A7:G41, J7:NI41") 

     If UCase(CurCell.Value) = "V" Then 
      CurCell.Interior.Color = RGB(0, 204, 0)   ' V 
End If 

    Next 

但是,這適用於所有的細胞。 我想這樣做:

if Not CurCell.Rows(7) = Z Then 

然後檢查V.因此,如果CurCell是在第i行第j列,我檢查,如果在第7行第j列中包含的Z。但我不知道該怎麼做。 我可以排除所有列但有52列..

+0

你正在做的是着色細胞?你可以用條件格式來做到這一點:= AND(A $ 7 <>「Z」,A7 =「V」)'爲什麼這必須是VBA? – tigeravatar

+0

有幾個人使用它,格式也被複制。有了Vba,它可能會更加傻傻。 – user408041

回答

0

我認爲這是你在找什麼:

If Not Cell(7, CurCell.Column).Value = "Z" Then 
    'Your code 
End If 

此語句應檢查列7細胞和CurCell的列是不是Z

+0

這隻會看第7行,而不是每第7行,像第14,21行,所以你需要添加一個循環.... –

+0

@ShaiRado我不認爲OP想要看每7行,只需要看第7行。 – tigeravatar

+0

@tigeravatar在這種情況下,我用我的代碼如下:) –

0

如果我正確地理解了你,你想排除所有周末行,並有「Z」,所以基本上你正在尋找每第7行。你可以使用類似下面的代碼:

Option Explicit 

Sub TestEverySevenRow() 

Dim CurCell As Range 

For Each CurCell In ActiveWorkbook.ActiveSheet.Range("A7:G41, J7:NI41") 

    ' current row is divided by 7, therefore it's a weekend 
    If CurCell.Row Mod 7 = 0 Then 

     ' for debug purpose only 
     CurCell.Value = "Current Row divided by 7" 

     ' the rest of your code goes here 

    End If 

Next 

End Sub