VBA заменить несколько строк из отдельного списка
Вопрос
Мне нужно заменить строки, но до сих пор мне удалось заменить только слова. Код проходит через столбец Описание и должен заменить каждую последовательность из списка. Идея состоит в том, чтобы использовать сокращения ( новые значения ), а не полные слова ( старых значений ).
Каждый раз, когда есть соседние (без пространства) слово, символ и т. Д., код не удается. Что не так? Спасибо !!!
Sub ReplaceWords_BUT_Need_ToReplaceStrings()
Application.ScreenUpdating = False
'This macro works with separated words only. Eliminate hyphens etc before applying this macro.
Dim r As Range, A As Range
Dim s1 As Worksheet, s2 As Worksheet, LastRow As Integer, v As String, j As Integer,
oldv As String, newv As String
LastRow = Cells(Rows.count, "A").End(xlUp).row
Set s1 = Sheets("JE_data")
Set s2 = Sheets("ListToReplace")
Set A = s1.Range("J:J").Cells.SpecialCells(xlCellTypeConstants)
For Each r In A
v = r.Value
For j = 2 To LastRow
oldv = s2.Cells(j, 1).text
newv = s2.Cells(j, 2).text
.
'Замените функцию, когда вы использовали, это чувствительно к регистру. «Вы уверены, что все ваши слова начнутся с заглавной буквы? «Если вместо этого не используйте функцию v= заменить (v, ardv, newv, 1 ,1, vbtextcompare). ОК.
v = Replace(v, oldv, newv, 1, -1, vbTextCompare)
'v = Replace(v, oldv, newv)
Next j
r.Value = Trim(v)
Next r
Application.ScreenUpdating = True
End Sub
.
Пример:
ListToreplace
Left column (old) Right column (new)
----------------------------------------
Invoice inv
Salary sy
Credit cr
.
JE_DATA
cr Note
cr note
INV/2712/14RF/0229/14
Invoice 1078 10
TECHNOQ01SI 2014 03288
.
( Редактор Примечание: Я не знаю, правильно ли примеру, так как он был написан в комментариях)
Credit
был заменен cr
, и ожидается, что Invoice
будет заменен генеракодицетагкодом, но он не был
Решение
Заменить функцию, как вы использовали, это чувствительно к регистру.Вы уверены, что все ваши слова начнутся с заглавной буквы?Если нет, то используйте
v = Replace(v, oldv, newv, 1, -1, vbTextCompare)
.
Вместо этого функция .