我有两张表。片1包含下列数据使用Excel中的宏在循环中查找和替换
表1:
Column 1 column 2
Hotel A New York
Hotel B Melbourne
我希望以该值,以取代在片材2的值
片2是这样的:
Column 1 Column 2 Column 3
Name .... .....
..... .... City
.... .... ....
Name .... .....
.... ..... City
我的理想输出将是:
Column1 Column 2 Column 3
Hotel A .... .....
..... .... New York
.... .... ....
Hotel B .... .....
.... .... Melbourne
所以,我想经过一个循环,sheet 1
和阅读的名字和酒店的城市,去sheet 2
和找到的话Name
和City
,并与我在sheet 1
阅读取代它们。我在VBA中非常新,并开始了我的代码,它甚至进入循环。为什么这样?
Sub testLoopPaste()
Dim j, k, L, b As String
Dim i As Long
Dim wb As Workbook
Dim sht1 As Worksheet
Dim sht2 As Worksheet
Set wb = ThisWorkbook
Set sht1 = wb.Sheets("Sheet1")
Set sht2 = wb.Sheets("Sheet2")
j = "Name"
b = "City"
For i = 1 To 2
k = sht1.Range("A" & i)
L = sht1.Range("B" & i)
sht2.Cells.Replace what:=j, replacement:=k, lookat:=xlWhole, MatchCase:=False
sht2.Cells.Replace what:=b, replacement:=L, lookat:=xlWhole, MatchCase:=False
Next i
End Sub
任何提示或指导表示赞赏。
当'Name'是'Hotel A'或'Hotel B '? –
@RobinMackenzie'sheet 2'中的第一个'Name'是'hotel A',因为它是'Sheet 1'中的第一行,第二个'Name'是'hotel B',因为它是'sheet 1中的第二行'。换句话说,“Sheet 2”中的“Name”的数量等于“sheet 1”中的行数。 – MFR