2016-04-29 71 views
0

如果E & F相等,我需要比较列E & F中的值,并将F列替换为新文本。 我对excel相当陌生,我尝试过很多不同的方法。VBA比较多个列值,然后替换为多个工作表

以下(来自谷歌)工作正常1张,但我需要它来做所有床单。

Sub findcomparereplace() 
Dim wsh As Worksheet, i As Long, lngEndRowInv As Long 
Set wsh = ActiveSheet 

i = 2 
lngEndRowInv = wsh.Range("E" & wsh.Rows.Count).End(xlUp).Row 
While i <= lngEndRowInv 
If Cells(i, "E") Like "*myvalue1*" And Cells(i, "F") Like "*myvalue1*" 
Then 
Cells(i, "F").Value = "myvalue2" 
End If 
i = i + 1 
Wend 
End Sub 

回答

0

可以遍历表像这样:

Sub findcomparereplace() 
    Dim wsh As Worksheet, i As Long, lngEndRowInv As Long 

    For Each wsh In ActiveWorkbook.Worksheets 
     i = 2 
     lngEndRowInv = wsh.Range("E" & wsh.Rows.Count).End(xlUp).Row 
     While i <= lngEndRowInv 
      If wsh.Cells(i, "E") Like "*myvalue1*" And wsh.Cells(i, "F") Like "*myvalue1*" Then 
       wsh.Cells(i, "F").Value = "myvalue2" 
      End If 
      i = i + 1 
     Wend 
    Next 
End Sub 
+0

感谢Buddy.That工作真棒。 – Chaz

+0

超棒的家伙。请标记为答案。此外,它发生在我身上,你可能想看它的进展,在这种情况下,在'For Each ...'行后面添加一行'wsh.Activate' – rayzinnz

+0

谢谢rayzinnz。我会稍后再尝试。再次感谢你的帮助。 ;-) – Chaz