Excel VBA – 从外部文件查找和replace

我有一个文件,我想运行查找和replace使用另一个Excel文件中的数据。

我到目前为止,我做错了什么?

Sub LegalName() Dim NameListWB As Workbook Dim NameListWS As Worksheet Set NameListWB = Workbooks.Open("File.xlsx") Set NameListWS = NameListWB.Worksheets("Sheet1") Dim rng As Range Set rng = NameListWS.Range("A:B").Select Do Until IsEmpty(ActiveCell) Worksheets("Sheet1").Columns("F").Replace _ What:=ActiveCell.Value, Replacement:=ActiveCell.Offset(0, 1).Value, _ SearchOrder:=xlByColumns, MatchCase:=False ActiveCell.Offset(1, 0).Select Loop End Sub 

我看到你开始声明你的对象,但错过了几个。 此外,您需要避免使用。select有趣的阅​​读

这是你正在尝试(未testing)?

 Sub Sample() Dim NameListWB As Workbook, thisWb As Workbook Dim NameListWS As Worksheet, thisWs As Worksheet Dim i As Long, lRow As Long '~~> This is the workbook from where your code is running Set thisWb = ThisWorkbook '~~> Change this to the sheet name where you want to replace '~~> in Column F Set thisWs = thisWb.Sheets("Sheet1") '~~> File.xlsx Set NameListWB = Workbooks.Open("C:\File.xlsx") Set NameListWS = NameListWB.Worksheets("Sheet1") With NameListWS '~~> Find last row in Col A of File.xlsx lRow = .Range("A" & .Rows.Count).End(xlUp).Row '~~> Loop though Col A For i = 1 To lRow '~~> Do the replace thisWs.Columns(6).Replace What:=.Range("A" & i).Value, _ Replacement:=.Range("B" & i).Value, _ SearchOrder:=xlByColumns, _ MatchCase:=False Next i End With End Sub