【发布时间】:2019-10-11 10:56:19
【问题描述】:
我想知道为什么我的代码没有正确读取单元格值。 关键是excel是否将单元格标记为红色以及用户按下验证按钮时。 宏会根据单元格颜色给出一条消息。
目前我正在“c4”上对此进行测试,但如果我将其设置为红色 (255,0,0),它不会将其读取为“红色”
Sub Validate()
Dim xRng As Range
Dim ws As Worksheet
Set ws = Sheets("TEMPLATE")
Set xRng = Range("A2:N1000")
If ws.Range("C4").Interior.Color = RGB(255, 0, 0) Then
MsgBox "Found some errors, please review your template", vbOKOnly + vbCritical, "Validation"
Else
MsgBox "No direct errors found!", vbOKOnly + vbQuestion, "Validation"
End If
End Sub
【问题讨论】:
-
试试
System.Drawing.ColorTranslator.ToOle(Color.red)而不是RGB(255, 0, 0) -
我在想同样的事情,因为代码对我来说似乎有效。但是,如果我用颜色工具检查它,它会显示 255 0 0。也许这些都有误差。我会尝试一个范围内的每个marge,如果它有效,我会验证它!
-
可能由于条件格式,单元格是红色的。我更改了标签,因为我认为这是纯 VBA 代码,至少我没有看到任何关于 VB.NET 的内容
-
啊这是 vba,感谢 Storax 的编辑
-
只要我直接格式化单元格,您的代码就可以为我工作。但如果我使用条件格式,它将不起作用。