Excel VBA – 值&MsgBox

我发布了一个关于这段已经被“Alex Bell”更改的代码的问题,他帮助我编写了一个MsgBox,每次在该特定范围内出现值“496”时出现。 但是由于我对这门语言的了解不多,所以有很多我不能做的事情。

我试图实现的下一步是做同样的事情已经完成,MsgBox警报,如果值是“496”,但现在也是“800”。

那么问题是什么? 问题是,我不能想出一种方法来把这两个条件一起工作,例如它告诉我“496”和“800”在哪里,并填充这两个包含特定值的单元格。

这可能是一个很容易解决的问题,但我又是vba的新手,当我在学校学习vb时,我们并没有那么多的学习。 所以期待更多的关于vba的话题,我正在试着学习。

Private Sub Worksheet_Change(ByVal Target As Range) Dim cell As Range If Not Intersect(Target, Range("G3:G500")) Is Nothing Then For Each cell In Target 'need clarification 'Me.Cells(cell.Row, "496").Interior.ColorIndex = xlColorIndexNone 'If cell.Value <> "" And cell.Value <> prevValue Then 'Me.Cells(cell.Row, "496").Interior.ColorIndex = 3 'End If If cell.Value = "496" Then cell.Interior.ColorIndex = 43 MsgBox ("The row where the status is 496 is located in: " & cell.Row) Else cell.Interior.ColorIndex = xlColorIndexNone End If Next cell End If 'If Not Intersect(Target, Range("G3:G500")) Is Nothing Then ' For Each cell In Target ' ' If cell.Value = "800" Then ' cell.Interior.ColorIndex = 4 ' MsgBox ("The row where the status is 800 is located in: " & cell.Row) ' Else ' cell.Interior.ColorIndex = xlColorIndexNone ' End If ' Next cell 'End If End Sub 

 If cell.Value = "496" Or cell.Value = "800" Then cell.Interior.ColorIndex = 43 MsgBox ("The row where the status is 496 or 800 is located in: " & cell.Row) Else cell.Interior.ColorIndex = xlColorIndexNone End If 

或者像这样:

 If cell.Value = "496" Then cell.Interior.ColorIndex = 43 MsgBox ("The row where the status is 496 is located in: " & cell.Row) ElseIf cell.Value = "800" Then cell.Interior.ColorIndex = 45 MsgBox ("The row where the status is 800 is located in: " & cell.Row) Else cell.Interior.ColorIndex = xlColorIndexNone End If 

如果您想要进行更多检查,可以考虑将行号存储到variables中,最后您可以调用MsgBox:

 Dim rowNumbers As String rowNumbers = "" If Not Intersect(Target, Range("G3:G500")) Is Nothing Then For Each cell In Target If cell.Value = "496" Then cell.Interior.ColorIndex = 43 rowNumbers = rowNumbers & cell.Row & " " ElseIf cell.Value = "800" Then cell.Interior.ColorIndex = 45 rowNumbers = rowNumbers & cell.Row & " " Else cell.Interior.ColorIndex = xlColorIndexNone End If Next cell MsgBox ("The rows where the status is 496 or 800 is located in: " & rowNumbers) End If