我正在研究一个将通过税法过滤我们的SC销售税的项目。为了做到这一点,我必须编写一些代码来纠正问题,例如城市名称。由于有时会将这些信息手动输入到我们的系统中,因此拼写可能会有所不同,导致我的代码无法正常工作。因此,我创建了一个新的工作表“ CITY FIND REPLACE”,其中有一个“查找”列(A)的拼写错误和一个“替换”列(B),以及正确的方式,这样我的代码才能正常工作。我在表格中需要它,这样我每个月都可以找到它并且发现更多/不同的城市拼写,可以将它们添加到搜索列表中,以便它可以捕获并更改它们。
我很难从其他工作表中获取要找到的代码,而且我不确定自己做错了什么。我希望它在Sheet1(原始数据)的H列中进行搜索(行数也可以每月更改,所以我只需要它遍历数据的底部即可,但不能设置为#),然后比较每个单元格与Sheet12(CITY FIND REPLACE)表1列A。如果它们匹配,请将其更改为Sheet12(CITY FIND REPLACE)列B。
注意:VBA编码不是我的事。我摸索了一下,并使用stackoverflow帮助我完成了另一个项目,现在我的工作认为我擅长于此……但我不是。我不明白用简单的英语进行的任何帮助都将是惊人的。
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
我现在正在得到
运行时间错误'1004':范围等级失败的选择方法。
当我单击调试时,它将高亮显示行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