2015-08-26 55 views
1

我正在寫一個代碼,檢查行是否爲黃色,如果單元格的值爲true,如果兩者均爲正值,則應返回空行並取消選中複選框名單。否則,它應該返回一個黃色的行。我寫了下面的代碼,但它不起作用。我將不勝感激您的幫助如果有2個條件返回2個不同的可能值

Sub desmarcar_antigos() 

    Dim i As Integer 
    For i = 130 To 2 Step -1 
     If Rows(i).EntireRow.Interior.ColorIndex = 6 Then 
      If Cells(i, 9).Value = "TRUE" Then 
       Rows(i).EntireRow.Interior.ColorIndex = 0 And Sheets("Planilha").CheckBox1.Value = False 
      Else 
       Rows(i).EntireRow.Interior.ColorIndex = 6 
      End If 
     End If 
    Next i 
    Application.ScreenUpdating = False 
End Sub 

回答

1

您不能使用And在一行中運行兩條語句。改變這一行:

Rows(i).EntireRow.Interior.ColorIndex = 0 And Sheets("Planilha").CheckBox1.Value = False 

要:

Rows(i).EntireRow.Interior.ColorIndex = 0 
Sheets("Planilha").CheckBox1.Value = False 

如果你真的想運行在一行上兩條語句,你可以使用:。例如:

Rows(i).EntireRow.Interior.ColorIndex = 0 : Sheets("Planilha").CheckBox1.Value = False 

但應該勸阻。

此外,您可以使用單一的If檢查兩個條件。這樣,你的Else將運行,如果其中一個失敗:

If Rows(i).EntireRow.Interior.ColorIndex = 6 And Cells(i, 9).Value = "TRUE" Then 
    Rows(i).EntireRow.Interior.ColorIndex = 0 
    Sheets("Planilha").CheckBox1.Value = False 
Else 
    Rows(i).EntireRow.Interior.ColorIndex = 6 
End If 
+0

psst ...它的行()不是Ows();) – DragonSamu

相關問題