我在Excel工作表中替换数据时遇到了很大的问题。主表中有超过6000个关键字,超过300000行。我必须在原始文本行的下一行中替换这些关键字。我正在尝试这个公式:
Sub ReplaceExample()
Dim OriginalText As String
Dim CorrectedText As String
OriginalText = Range("A2").Value
CorrectedText = Replace(OriginalText, "left", "Left")
CorrectedText = Replace(OriginalText, "limited", "Limited")
Range("A2").Offset(, 1).Value = CorrectedText
End Sub
但我遇到Range()
的问题。
我在Excel表格中有一个巨大的数据范围。
我可以为所有替换使用单个公式???
例如:这是原始文本单元格编号(A2:A12)
的示例数据00-00 Buick Lesabre (limited) headlight Set;
00-00 Buick Lesabre Tail Light left;
00-00 Buick Lesabre Tail Light Pair;
00-00 Buick lesabre tail Light Right;
00-00 Buick Lesabre Tail Light Set;
00-00 Dodge /Plymouth Neon Fog Light Pair;
00-00 Dodge caravan/Plymouth voyager/ Chrysler towncar(W/ Quad) Headlight Left;
00-00 Dodge Caravan/voyager /Towncar(W/O Quad&Dtrl)Headlight Set;
00-00 Dodge/Plymouth Neon Fog Light Left;
00-00 Dodge/Plymouth Neon Fog Light Right;
2000 Nissian 350z;
关键字单元格编号(A2:A8)
Limited;
Left;
Lesabre;
Caravan;
Voyager;
350Z;
Towncar
我需要快速解决。
答案 0 :(得分:1)
这样做:
在开头插入2列,在A列中放置所有关键字。在b列中放置所有替换。从第一行的顶部开始。然后使用这个宏:
Sub macro1()
Dim rng As Range
Set rng = thisWorkbook.Activesheet.Range("A1")'uses thisWorkbook and Activesheet such that this macro will work regardless of the name of the sheet or workbook.
While rng.FormulaR1C1 <> "" 'processes untill a blank cell is encountered
Cells.Replace What:=rng.FormulaR1C1, Replacement:=rng.Offset(0, 1), LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Set rng = rng.Offset(1, 0)
Wend
End Sub
您希望将此宏粘贴到与当前宏下方已存在的模块相同的模块中。或者,您只需删除宏中Sub ReplaceExample()
和end sub
之间的所有内容,然后将我的示例中的所有内容复制到Sub macro1()
和end sub
之间,并将其粘贴到代码所在的位置。