我刚刚注册,因为我无法在任何地方找到问题的答案,这让我发疯了。我有一个代码(下面)我试图只有在不同的范围符合标准时才能运行。在列“L”中我有一个日期,如果日期少于14天,则单元格将突出显示并加粗。但是,如果列“M”中的单元格为空,我只需要运行此代码。 “L”是项目的截止日期,“M”是完成日期。因此,如果“M”已经完成并且有一个日期,那么我不需要格式化“L”因为它已经完成。这是我目前的代码:
Sub InvestigationAlertMsg()
Sheets("Investigations").Select
Dim Msg As String
'Set test = Range("M2:M1000").Find(What:="")
For Each cell In Range("L2:L1000")
'If Range("M2:M1000").Text <> "" Then
If cell.Value < Date + 14 And cell.Value <> "" Then
If Msg = "" Then
Msg = "Investigation(s) Due in <14 Days"
End If
cell.Interior.ColorIndex = 6
cell.Font.Bold = True
ElseIf cell.Value > Date + 14 Then
cell.Interior.ColorIndex = 0
cell.Font.Bold = False
'ElseIf Range("M2:M1000").Text <> "" Then
cell.Interior.ColorIndex = 3
End If
'End If
Next
If Msg <> "" Then MsgBox Msg, vbOKOnly, "Attention"
End Sub
修改
这是我的单元格的屏幕截图
当项目获得批准时,批准日期将以“M”输入。当发生这种情况时,“截止日期”或“L”变得无关紧要,因此我不再需要格式化它,它不需要填充。
答案 0 :(得分:1)
使用它来测试下一栏中的单元格:
If cell.offset(0,1).value="" then
答案 1 :(得分:1)
我不确定你在问什么,但是你走了:
{{1}}
答案 2 :(得分:0)
将'If Range("M2:M1000").Text <> "" Then
替换为此代码
If Range("M" & cell.Row).value = "" Then