2017-07-19 75 views
0

我有下面的代碼,它工作正常。不過,我需要知道如何在地方的什麼樣的條件下使用:「」就像我多次搜索標準需要找到(「」,‘ - ’,‘*’等)我怎樣才能使用什麼:=在VBA中like和multiple condition

Option Explicit 
Sub ReplaceDoTwComma() 
     Worksheets("Sheet1").Columns("D").replace _ 
      What:=",", replacement:=".", LookAt:=xlPart  
     Worksheets("Sheet1").Columns("G").replace _ 
      What:=",", replacement:=".", LookAt:=xlPart 
End Sub 

謝謝推進求助

+0

你是什麼意思「LIKE條件」?至於多個標準,您需要在每個條件下在VBA中使用多個'.replace'行。 – JNevill

+1

你可以使用'?'這樣的通配符作爲單個字符,'*'作爲一個字符串。 –

+0

您可以使用正則表達式來替換給定符號集中符號的所有出現符號,但這需要使用循環而不是使用'Replace()'方法迭代單元格。 –

回答

0

正如在評論中提到,您可以使用多個REPLACE語句:

Option Explicit 

Public Sub ReplaceDoTwComma() 

    Dim findVal As Variant, replVal As Variant, i As Long, cols As Range 

    findVal = Split(", - * test1") 'add items to replace separated by a space 

    replVal = Split(". _ ! test3") 'add replacements (same number as findVal) 

    With Worksheets("Sheet1") 
     With .Range(.Cells(1), .Cells.SpecialCells(xlCellTypeLastCell)) 
      Set cols = Union(.Columns(4), .Columns(7)) 
     End With 
    End With 

    For i = LBound(findVal) To UBound(findVal) 

     If findVal(i) = "*" Then findVal(i) = "~*" 'escapes special wild char "*" 

     cols.Replace What:=findVal(i), Replacement:=replVal(i), LookAt:=xlPart 

    Next 

End Sub 
+0

非常感謝,這工作 – Rick