需要使用VBA在replace函数中循环遍历值范围

时间:2016-06-16 16:50:25

标签: vba excel-vba excel

我正在创建一个宏,该宏在一个工作表上引用两列值,并使用这些值替换另一个工作表上的列中的值。

例如:

在Sheet2中,范围(“A2”)的值是 LosAngeles ,范围(“B2”)的值是加利福尼亚。然后,范围(“A3”)的值是曼哈顿,范围(“B3”)的值是纽约,并且列表继续。这些列表也是动态的,每天都会更改。

在表格(“名称”)上,我有一个字符串列表,需要在sheet2(城市)的A列中搜索值,并替换为sheet2上列B中的值(状态)。

这是我到目前为止所做的,但不幸的是我收到了一个错误说:

  

运行时错误:'5'“无效的过程调用或争论

当我到达时:

Selection.Replace What:=ThisWorkbook.Sheets("Sheet2").Cells("i,1").Value, Replacement:= _
        ThisWorkbook.Sheets("Sheet2").Range("i,2").Value, LookAt:=xlPart, SearchOrder:= _
        xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False

以下是整个子程序。谁能帮我?非常感谢你!

Sub MatchHelp()

Dim i As Long
Dim lastRow As Long
Dim Name As Worksheet
Dim OriginalText As Variant

Set Name = ThisWorkbook.Sheets("Name")

lastRow = Name.Range("A" & Name.Rows.Count).End(xlUp).Row


For i = 2 To lastRow
    Name.Columns("B:B").Select
    Selection.Replace What:=ThisWorkbook.Sheets("Sheet2").Cells("i,1").Value, Replacement:= _
        ThisWorkbook.Sheets("Sheet2").Range("i,2").Value, LookAt:=xlPart, SearchOrder:= _
        xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
  Next
End Sub

0 个答案:

没有答案