vez varios reemplazar por para masivo mac funciona datos comando buscar excel vbscript automated-tests hp-uft

varios - Buscar y reemplazar una cantidad de caracteres en Excel usando VBscript



formula para buscar y reemplazar en excel (2)

Gracias a todos,

esto está funcionando bien para mí.

For Each objsheet1 In objworkbook2.Sheets With objsheet1 If .Name = "BatchRun" Then On error resume next For i = 1 To 15 Step 1 For j = 1 To 10 Step 1 If InStr(1, .Cells(i, j).Value, my_old_string) > 0 Then .Cells(i, j).Value = Replace(.Cells(i, j).Value, my_old_string, my_new_string) End If Next Next End If End with Next

Necesito buscar y reemplazar una parte específica de una cadena en una hoja de Excel.

Aquí está mi código y no sé cómo puedo buscar exactamente esta parte en cada valor de Cell.value .

my_new_string = "abc" For each objSheet1 in objworkbook2.sheets If objSheet1.Name = "Name1" Then LastRow = objsheet1.UsedRange.Rows.Count + objsheet1.UsedRange.Row - 1 For i = 1 To LastRow Step 1 For j = 1 To 15 Step 1 If objExcel1.Cells(i, j).value = "xyz" Then ''Here I have to check if the Cell value contains xyz and to replace it by **my_new_string** End if Next Next End If Next

¿Alguna ayuda, por favor?


Cambié tu método para encontrar la última fila a una que sea mucho más confiable.

También utilizaste 2 objetos diferentes para describir la misma hoja, ¡así que lo arreglé! ;)

Finalmente, solo necesita usar el método Replace que hará el trabajo perfectamente bien, sin necesidad de probar si la cadena está presente con Instr ( Instr si tiene algo más que hacer si se detecta la cadena anterior)

Const my_old_string = "xyz" Const my_new_string = "abc" Const xlPart = 2 Const xlFormulas = -4123 Const xlByRows = 1 Const xlPrevious = 2 For Each objsheet1 In objworkbook2.Sheets With objsheet1 If .Name = "Name1" Then LastRow = .Cells.Find("*",.Range("A1"),xlPart,xlFormulas,xlByRows,xlPrevious,False).Row For i = 1 To LastRow Step 1 For j = 1 To 15 Step 1 .Cells(i, j).Value = Replace(.Cells(i, j).Value, my_old_string, my_new_string) '' If InStr(1, .Cells(i, j).Value, my_old_string) Then '' .Cells(i, j).Value = Replace(.Cells(i, j).Value, my_old_string, my_new_string) '' End If Next Next End If End With Next