【发布时间】:2016-07-22 10:00:16
【问题描述】:
在我的程序中,我使用以下方法设置 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
它返回一个“类型转换无效”异常。
如果颜色被检查:
If(sheet.cells(row, column).style.interior.color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red))
'Do something
End If
颜色不相等(即使单元格是红色的),因为内部颜色是 16777215,颜色转换器返回 255。
如何正确比较颜色?
【问题讨论】:
-
这是在您标记的 VB.NET 中还是在 VBA 中?
-
看看这个链接是否可以帮助您将颜色转换为 RGB 格式以进行比较stackoverflow.com/questions/24132665/…
-
vb.net,它是用visual studio编写的插件,使用microsoft interrop library
-
好的,解决了。通过使用单元格(x,y).style.Interior.color,我正在检查样式的内部颜色,而不是单元格本身的颜色。如果我需要删除这个问题,请告诉我,因为它是一个愚蠢的问题......
-
使用 XLRgbColor 枚举代替 System.Drawing.Color msdn.microsoft.com/en-us/library/bb241561