[英]VBA replace multiple strings from a separate list
我需要替換STRINGS,但到目前為止,我僅替換了單詞。 該代碼將通過“描述”列,並應替換列表中的每個序列。 這個想法是使用縮寫( 新值 )而不是完整的單詞( 舊值 )。
每次有一個相鄰(無空格)的單詞,字符等時,代碼都會失敗。 怎么了? 謝謝!!!
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 = Replace(v,oldv,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
應用inv
代替,但不是
使用過的替換功能區分大小寫。 您確定所有發票字都以大寫字母開頭嗎? 如果沒有,則使用
v = Replace(v, oldv, newv, 1, -1, vbTextCompare)
功能代替。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.