Excel VBA从差异工作表上的表中查找和替换

问题描述 投票:0回答:1

我正在研究一个将通过税法过滤我们的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

excel vba find-replace
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
© www.soinside.com 2019 - 2024. All rights reserved.