Si la celda contiene una cadena parcial, cambie el valor celular
Pregunta
Tengo una lista de cientos de empresas en una columna.Hay empresas repetidas que fueron ingresadas de manera diferente.(es decir, "Nike" vs "Nike Inc")
Estoy tratando de programar una macro en Excel para bucle a través de la columna para buscar "Nike" y, si se encuentra, reemplazará lo que está en esa celda a un nombre de empresa consistente (es decir, "Nike, Inc.") el objetivoSería tener la búsqueda de macros para muchas empresas.
¡Aprecio cualquier ayuda!
Solución
Aquí hay un ejemplo para Nike y Ford
Sub Company()
ary = Array("Nike", "Ford")
Dim v As String, i As Long, j As Long
For i = LBound(ary) To UBound(ary)
v = ary(i)
For j = 1 To Cells(Rows.Count, "A").End(xlUp).Row
If InStr(1, Cells(j, "A"), v) > 0 Then
Cells(j, "A") = v
End If
Next j
Next i
End Sub
expandir ary () según sea necesario.
Otros consejos
dim configSht as WorkSheet, compArray() as String, x as Integer
set configSht = thisWorkbook.Sheets("Config")'This identifies your config sheet
redim compArray(0)
for x = 1 to Cells(Rows.Count, "A").End(xlUp).Row
if Cells(x,"A")<>"" then
compArray(UBound(compArray) = Cells(Rows.Count, "A")
End IF
reDim Preserve compArray(UBound(compArray)+1)
Next
Esa es una idea muy básica.Luego, usaría compArray
en lugar de ary
en la solución estudiantil de Gary.La matriz de comparación contendría la información que desea que lea la célula después de ejecutar el código.Así que si quieres "Nike Inc."Para todas las instancias de "NIKE", entonces "Nike Inc."estaría en su configuración.