我以编程方式创建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;因为当我删除它时,我不会得到错误。
答案 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 对象来改变颜色。核实。我对你的代码做了一些修改。