Excel VBA 从差异工作表上的 table 查找和替换
Excel VBA find and replace from a table on difference worksheet
我正在进行一个项目,该项目将按税码过滤我们的 SC 销售税。为了做到这一点,我必须编写一些代码来纠正错误,例如城市名称。看到有时这些信息是手动输入我们的系统的,拼写可能会有所不同,导致我的代码无法正常工作。因此,我创建了一个新的工作表 "CITY FIND REPLACE",其中有一个 "find" 列 (A) 的拼写错误和一个 "replace" 列 (B) 以及它需要的方式,以便我的代码工作正常。我在 table 中需要它,这样我每个月都会找到 more/different 个城市的拼写,我可以将它们添加到搜索列表中,这样它就会捕获并更改它们。
我很难从不同的工作表中获取我发现的代码,我不确定我做错了什么。我希望它搜索 Sheet1 上的 H 列(原始数据)(行数也可以每个月更改,所以我只需要它遍历数据的底部,但不能是一组 #),然后将每个单元格与 Sheet12 (CITY FIND REPLACE) TABLE 1 列 A 进行比较。如果匹配,将其更改为 Sheet12 (CITY FIND REPLACE) B 列。
注意:VBA编码不是我的事。我摸索着使用 Whosebug 来帮助我完成另一个项目,现在我的工作认为我擅长这个……但我不是。我不明白。任何简单的英语帮助都会很棒。
Sub FindReplace()
For i = 2 To 40
Worksheets("RAW DATA").Range("H:H").Select
Selection.Replace what:=Worksheets("CITY FIND REPLACE").Cells(i, 1).Value,
replacement:=Worksheets("CITY FIND REPLACE").Cells(i, 2).Value, lookat:=xlPart,
searchorder:=xlByRows, MatchCase:=False
Next
Worksheets("RAW DATA").Cells(1, 1).Select
End Sub
我现在正在
RUN TIME ERROR'1004': SELECT METHOD OF RANGE CLASS FAILED.
当我单击调试时,它会突出显示行 Worksheets("RAW DATA").Range("H:H").Select
。
我看不出这不起作用的任何原因。
Sub FindReplace()
For i = 2 To 40
Worksheets("RAW DATA").Range("H:H").Replace what:=Worksheets("CITY FIND REPLACE").Cells(i, 1).Value, _
replacement:=Worksheets("CITY FIND REPLACE").Cells(i, 2).Value, lookat:=xlPart, _
searchorder:=xlByRows, MatchCase:=False
Next i
End Sub
我正在进行一个项目,该项目将按税码过滤我们的 SC 销售税。为了做到这一点,我必须编写一些代码来纠正错误,例如城市名称。看到有时这些信息是手动输入我们的系统的,拼写可能会有所不同,导致我的代码无法正常工作。因此,我创建了一个新的工作表 "CITY FIND REPLACE",其中有一个 "find" 列 (A) 的拼写错误和一个 "replace" 列 (B) 以及它需要的方式,以便我的代码工作正常。我在 table 中需要它,这样我每个月都会找到 more/different 个城市的拼写,我可以将它们添加到搜索列表中,这样它就会捕获并更改它们。
我很难从不同的工作表中获取我发现的代码,我不确定我做错了什么。我希望它搜索 Sheet1 上的 H 列(原始数据)(行数也可以每个月更改,所以我只需要它遍历数据的底部,但不能是一组 #),然后将每个单元格与 Sheet12 (CITY FIND REPLACE) TABLE 1 列 A 进行比较。如果匹配,将其更改为 Sheet12 (CITY FIND REPLACE) B 列。
注意:VBA编码不是我的事。我摸索着使用 Whosebug 来帮助我完成另一个项目,现在我的工作认为我擅长这个……但我不是。我不明白。任何简单的英语帮助都会很棒。
Sub FindReplace()
For i = 2 To 40
Worksheets("RAW DATA").Range("H:H").Select
Selection.Replace what:=Worksheets("CITY FIND REPLACE").Cells(i, 1).Value,
replacement:=Worksheets("CITY FIND REPLACE").Cells(i, 2).Value, lookat:=xlPart,
searchorder:=xlByRows, MatchCase:=False
Next
Worksheets("RAW DATA").Cells(1, 1).Select
End Sub
我现在正在
RUN TIME ERROR'1004': SELECT METHOD OF RANGE CLASS FAILED.
当我单击调试时,它会突出显示行 Worksheets("RAW DATA").Range("H:H").Select
。
我看不出这不起作用的任何原因。
Sub FindReplace()
For i = 2 To 40
Worksheets("RAW DATA").Range("H:H").Replace what:=Worksheets("CITY FIND REPLACE").Cells(i, 1).Value, _
replacement:=Worksheets("CITY FIND REPLACE").Cells(i, 2).Value, lookat:=xlPart, _
searchorder:=xlByRows, MatchCase:=False
Next i
End Sub