2015-10-20 240 views
1

我正在努力处理我写入的一块VBA,其目的是更改列B中单元格的值,如果列G包含特定位文本。这是我到目前为止已经写的:VBA:基于其他单元格的近似值更改单元格的值

Sub Test() 
    Dim LastRow As Long 
    Dim i As Long 
    Sheets("Current Week").Select 
    LastRow = Range("G" & Rows.Count).End(xlUp).Row 
    For i = 2 To LastRow 
     If Range("G" & i).Value Like "*Eagle*" Then 
      Range("B" & i).Value = "Bird" 
     End If 
    Next i 
End Sub 

虽然上述作品,我挣扎的是,我想添加更多的“值分别为”不只是“鹰”。我已经尝试了以下没有太多成功:

Sub Test() 
    Dim LastRow As Long 
    Dim i As Long 
    Sheets("Current Week").Select 
    LastRow = Range("G" & Rows.Count).End(xlUp).Row 
    For i = 2 To LastRow 
     If Range("G" & i).Value Like "*Eagle*" 
     Or ("G" & i).Value Like "*Pelican*" 
     Then 
     Range("B" & i).Value = "Bird" 
     End If 
    Next i 
End Sub 

我该如何添加更多“值like”?

谢谢!

回答

2

我觉得你的困惑源于VB(A)的要求,如果你想为了可读性目的而打破一条线,就使用line continuation character_)。

' ... 

If _ 
    Range("G" & i).Value Like "*Eagle*" Or _ 
    Range("G" & i).Value Like "*Pelican*" Or _ 
    Range("G" & i).Value Like "*Chicken*" Or _ 
    Range("G" & i).Value Like "*Sparrow*" _ 
Then 
    Range("G" & i).Value = "Bird" 
End If 

' ... 
+0

这是绝对正确的(另外,我错过了“Next”语句)。我纠正了它。非常感谢! – Aybabtus

相关问题