2016-07-20 6 views
0

Der folgende Code funktioniert gut für einen bestimmten Wert in einer gesamten Spalte ersetzt:Verwenden von Arbeitsblättern. .replace Funktion für bestimmte Zelle anstelle der gesamten Spalte/Zeile

Worksheets("Sheet1").Columns(MyColumnLetter).Replace _ 
what:=val_Old, Replacement:=val_New, lookat:=xlWhole, _ 
SearchOrder:=xlByColumns, MatchCase:=False 

Jedoch brauchen nur I-Wert in einer bestimmten Zelle zu ersetzen (zB in Zelle "D9" als Teil einer VBA-Schleife) anstelle der gesamten Spalte oder des gesamten Zellenbereichs.

Kann jemand bitte die erforderliche Änderung des obigen Codes vorschlagen?

Danke.

+0

ersetzen nur der Wert in D9 verwenden 'Worksheets ("Sheet1") Range ("D9") ersetzen _ was:.. = Val_Old, Ersatz: = val_New, lookat: = xlWhole, _ SearchOrder: = xlByColumns, MatchCase: = False'. Sie möchten die gesamte Spalte D durchlaufen? –

+0

Wie diese 'Worksheets (" Sheet1 "). Zellen (9, 4) .Replace" Hallo "," gut "ODER" Worksheets ("Sheet1"). Zellen (9, 4) .Replace "alten Wert", " neuer Wert "' – skkakkar

Antwort

0

Wenn Sie eine Schleife durch D die gesamte Spalte soll (bis letzte Zeile):

Option Explicit 

Sub Replace_ColumnD() 

Dim sht1 As Excel.Worksheet 
Dim LastRow As Long 
Dim lrow As Long 
Dim val_new As String 
Dim val_old As String 


Set sht1 = ActiveWorkbook.Worksheets("Sheet1") 
LastRow = sht1.Cells(sht1.Rows.Count, "D").End(xlUp).Row 

For lrow = 1 To LastRow 
    sht1.Cells(lrow, 4).Replace val_old, val_new 
Next 

End Sub 
1

Ersetzen Wert in einer Zelle A2:

Range("A2").Replace oldValue, newValue 

Wert Ersetzen in einem Bereich:

Range("A2:A10").Replace oldValue, newValue 
0

Danke Jungs. Es war wirklich sehr hilfreich. Schließlich sieht der Code wie folgt aus:

For i = 2 To LastRow 

MyRange = MyColumnLetter & i 

If....condition met: 
    Worksheets("Sheet1").Range(MyRange).Replace val_Old, val_New 
End If 

Next