每个单元格的值为0,该行将被隐藏。以及在最小值和最大值之外的任何值 将是红色的。
Set mr = Sheets("COA").Range("i11:i34")
For Each cell In mr
If cell.DisplayFormat.Interior.Color = vbRed Then
MsgBox
该代码与预期不同,因为红色隐藏单元格也被计算在内。
我以前问过,人们回答
Set rng = Range("Your range").SpecialCells(xlCellTypeVisible)
但如果我有两个条件呢如何合并set和if?
条件A =如果活动单元格为红色,则返回到用户表单并
条件B =如果活动单元格不是红色,则卸载用户表单
Set Rng = Range("i11:i34").SpecialCells(xlCellTypeVisible)
If ActiveCell.DisplayFormat.Interior.Color = vbRed Then
MsgBox "bla bla bla", vbCritical + vbOKOnly, ""
'Show Excel and resize the UserForm2
Application.Visible = True
Me.Height = 405
Me.Width = 730.5
End If
If ActiveCell.DisplayFormat.Interior.Color = 0 Then
MsgBox "bla bla bla", vbCritical + vbOKOnly, ""
End If
1条答案
按热度按时间brc7rcf01#
这就是你要尝试的吗?
请记住,编写清晰简洁的代码总是更好的。最好也完全限定对象。还有一件事当使用
SpecialCells
时,始终将它们夹在On Error Resume Next
和On Error GoTo 0
之间,如我下面所示,否则您可能会得到错误。顺便说一句,我没有使用
If-Then-Else
。我用Select Case
。