Если ячейка содержит частичную строку, затем изменить значение ячейки
Вопрос
У меня есть список сотен компаний в столбце.Есть повторные компании, которые были введены по-разному.(то есть «Nike» vs "Nike Inc")
Я пытаюсь запрограммировать макрос в Excel, чтобы включить столбец через столбец, чтобы найти «Nike», и если обнаружено, что он заменит то, что в этой ячейке к консистенционной компании (т.е. Nike, Inc. »)Было бы, чтобы макрос поиск многих компаний.
Я ценю любую помощь!
Решение
Вот пример для nike и 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
.
Развернуть ary () по мере необходимости.
Другие советы
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
.
Это очень базовая идея.Тогда вы бы использовали compArray
вместо ary
в студенческом решении @ GARY.Массив сравнения будет содержать информацию, которую вы хотите, чтобы ячейка прочитала после запуска кода.Так что, если вы хотите «Nike Inc.»Для всех случаев «Nike» тогда «Nike Inc.»будет на вашем конфиге.