运行时错误1004" Interior.Color"

时间:2015-07-20 09:23:48

标签: excel vba excel-vba

我以编程方式创建Excel工作簿,使用与按钮关联的宏,此宏应检查用户在工作表中输入的值是否正确,并根据绿色或红色为单元格着色,具体取决于案件。

宏的代码在另一个Excel工作簿中,并使用以下代码添加到创建的工作簿中:

 With newWorkBook.Worksheets(1).Buttons.Add(350, 115, 50, 41.25)
    .Caption = "Vérifier la conformité"
    .OnAction = "'" & ThisWorkbook.FullName & "'!check_FCM"
 End With

以下是宏的代码部分,它不起作用:

For i = 0 To col - 1
    If (IsNumeric(Cells(29, i + 2).Value)) Then
        If (Cells(29, i + 2).Value >= Cells(31, i + 2).Value And Cells(29, i + 2).Value <= Cells(32, i + 2)) Then
            Range(Cells(29, i + 2).Address()).Interior.Color = RGB(0, 255, 0)
       Else
            Range(Cells(29, i + 2).Address()).Interior.Color = RGB(255, 0, 0)
            isCorrect = False '
        End If '
    End If '
Next i '

问题似乎来自于使用&#34; Interior.Color=RGB(x,y,z)&#34;因为当我删除它时,我不会得到错误。

1 个答案:

答案 0 :(得分:1)

您可以取消保护保护表格,如下所示:

Sheets("sheetname").Unprotect

For i = 0 To col - 1

    If (IsNumeric(Cells(29, i + 2).Value)) Then

        If (Cells(29, i + 2).Value >= Cells(31, i + 2).Value And Cells(29, i + 2).Value <= Cells(32, i + 2)) Then
            Cells(29, i + 2).Interior.Color = RGB(0, 255, 0)
        Else
            Cells(29, i + 2).Interior.Color = RGB(255, 0, 0)
            isCorrect = False 
        End If 

    End If 

Next i 

Sheets("sheetname").Protect

还可以使用 Cells 对象来改变颜色。核实。我对你的代码做了一些修改。