prova questa:
l'ho testata e funziona su excel 2002codice:Sub SostituzioneStringa() Dim sh As Worksheet, trg As Range, CountBlank As Double Dim sWhat As String, sReplace As String Cells(1, 1).FormulaR1C1 = "qui scrivo albero perché devo sostuituirlo" sWhat = "albero" sReplace = "faggio" For Each sh In Application.ActiveWorkbook.Worksheets If sh.Name <> "Protetto" Then On Local Error Resume Next Set trg = sh.Range("A1:IV65536") CountBlank = Application.WorksheetFunction.CountBlank(trg) If CountBlank < 16777216 Then trg.Replace What:=sWhat, Replacement:=sReplace, LookAt:=2, SearchOrder:=1, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False End If Set trg = Nothing End If Next End Sub
secondo me era il valore di LookAt che sbagliavi a passargli alla funzione Replace.... infatti:
1 - gli si dice a excel che tutta nella cella deve esserci quel valore esatto;
2 - gli si dice che excel di guardare la cella, se una parte di essa contiene il valore lo sostituisce...
fammi sapere

Rispondi quotando