如何检查Excel单元格的背景颜色

时间:2016-07-22 10:00:17

标签: vb.net excel

在我的程序中,我使用以下方法设置excel单元格的背景颜色:

sheet.cells(row, column).interior.color = System.Drawing.Color.Red

在我的程序的另一部分,我想看看颜色是否为红色,但是这段代码:

If(sheet.cells(row, column).interior.color = System.Drawing.Color.Red) Then
    'Do something
End If

它返回'Type cast invalid'异常。

如果通过以下方式检查颜色:

If(sheet.cells(row, column).style.interior.color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red))
    'Do something
End If

颜色据说不相等(即使单元格为红色),因为内部颜色为16777215,颜色转换器返回255.

如何以正确的方式比较颜色?

1 个答案:

答案 0 :(得分:0)

我不确定,但在vba中不存在System.Drawing.Color.xxx。你可以试试这个:

ActiveSheet.Cells(row, column).Interior.Color = RGB(255, 0, 0)

If (ActiveSheet.Cells(row, column).Interior.Color = RGB(255, 0, 0)) Then
    'Do something
End If

您还可以查看.Interior.ColorIndex 我认为你应该将问题的标签改为vba而不是vb.net。

最好的问候。