シートで特定の値(この場合は「ALAE」)を検索しようとしています。このインスタンスを見つけたら、下に移動して、後続のすべてのフィールドを別のワークシートにある参照値に置き換える必要があります。
たとえば、フィールドの列見出しに「ALAE」があり、その下に2つの「2」があります。リファレンスシートに移動し、2の意味を調べて、値をテキストバージョンに置き換える必要があります。「ALAE」の場所は常に変更され、見出しの下のフィールドの数も変更されます。マクロを実行するたびにこれを動的に行う必要があります。
現在、コードは最初の「2」を置き換えますが、2番目は置き換えません。
これが私がこれまでに持っているコードです
Sub Reference()
Dim macroSheet As Worksheet
Dim LastRow As Long
Dim strSearch As String
Dim aCell As Range, bCell As Range
Dim x As Integer
Set macroSheet = Sheets("Treaty Year Preview")
With macroSheet
LastRow = .Range("A" & Rows.Count).End(xlUp).Row
strSearch = "ALAE"
Set aCell = .Range("A1:R" & LastRow).Find(What:=strSearch, LookIn:=xlValues, _
Lookat:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=True, SearchFormat:=False)
If Not aCell Is Nothing Then
x = 1
Set bCell = aCell
Do
aCell.Offset(x) = Application.WorksheetFunction.VLookup(aCell.Offset(x), Worksheets("ALAE ULAE").Range("A:B"), 2)
x = x + 1
Loop Until aCell.Offset(x) Is Nothing
End If 'If Not aCell is Nothing Then
End With 'With macroSheet
End Sub