在第一個Excel文件中,列C中的多個單元格包含公司的地址和名稱;我只想保留公司名稱。對於這一點,我有另外一個Excel文件(我稱之爲「詞典」),它具有如下所示的特殊結構:基於另一個文件中的工作表提取第一個Excel文件中的單元格內容
Column B : Name that I want to keep.
Column C : Various Patterns of the name, delimited with ";".
Example : B1 = "Sony", C1="Sony Entertainement;Sony Pictures;Playstation"
我需要VBA宏讀字典文件,然後爲每個模式(包圍任何東西)用我想要保留的詞替換它。
我的宏看起來像:
Sub MacroClear()
<For each line of my dictionnary>
arrayC = split(<cell C of my line>, ";")
<For i in range arrayC>
Cells.Replace What:="*"&Trim(arrayC(i))&"*", Replacement:=Trim(<cell B of my line>), LookAt:= _
xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub
編輯 - 更新:我第一次解釋的捕捉,這將是比較容易理解的結構:
dictionnary http://img11.hostingpics.net/pics/403257dictionnary.png
編輯 - 更新2:我做了一個「非清理」文件的屏幕截圖,然後我想在結尾的結果。
沒有清洗:noclean http://img11.hostingpics.net/pics/418501notcleaned.png
清理:clean http://img11.hostingpics.net/pics/221530cleaned.png
PS:我知道我的宏,因爲它是會分析我的工作表中的所有單元格,是否有可能「輕鬆」地告訴她的不理列A?
編輯 - 更新3:我的宏運行以及小字典,但是當它逐漸變大,我的宏不會停止運行,我必須關閉使用Ctrl + Alt + Suppr脫穎而出。 :x有沒有辦法讓她在到達某個點時停止?
例如,使用xlByRows
並在我的最後一行之後的第一個單元格寫入「END」。
請說明你的商業邏輯:你要根據上找到匹配的B2含量更換在同一張工作表的B1中,像「索尼娛樂公司;索尼電影公司; Playstation」變成「索尼」?感謝和問候, –
@AlexBell我犯了一個錯誤,我寫的「B2」= C1實際上^^'我要編輯我的帖子來糾正這個錯誤。是的,我想將「索尼娛樂」,「索尼影視」和「Playstation」(C1)替換爲「索尼」(B1)。這是[我的第一個詞典開頭](http://img11.hostingpics.net/pics/403257dictionnary.png)。希望它能幫助你!問候, – Malik
請給我們一個例子,您的預期輸出宏後運行 – Brino