0

我正在开展一个项目,该项目将按税码过滤我们的 SC 销售税。为了做到这一点,我必须编写一些代码来纠正问题,例如城市名称。看到有时这些信息是手动输入我们的系统的,拼写可能会有所不同,导致我的代码无法正常工作。所以,我创建了一个新的工作表“CITY FIND REPLACE”,其中有一个拼写错误的“查找”列(A)和一个“替换”列(B),它需要这样才能使我的代码正常工作。我需要将它放在一个表格中,以便每个月我都这样做并找到更多/不同的城市拼写,我可以将它们添加到搜索列表中,以便它能够捕获并更改它们。

我很难从另一个工作表中获取我发现的代码,我不确定我做错了什么。我希望它通过 Sheet1 (RAW DATA) 上的 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

4

1 回答 1

1

我看不出这不起作用的任何原因。

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
于 2019-10-23T14:15:46.820 回答