Нужно добавить чтобы макрос проверял не только совпадения в столбце B, но и на других столбцах после него.
Sub MergeSheetsContainingAshan()
    Dim SourceWorkbook As Workbook
    Dim SourceWorksheet As Worksheet
    Dim TargetWorkbook As Workbook
    Dim TargetWorksheet As Worksheet
    Dim LastRow As Long
    Dim NextRow As Long
    
    ' Открываем рабочую книгу-источник по ссылке в ячейке A1 на листе5
    Set TargetWorkbook = ThisWorkbook
    Set SourceWorkbook = Workbooks.Open(TargetWorkbook.Worksheets("Лист5").Range("A1").Value)
    
    ' Создаем новый лист “Лист6” в целевой рабочей книге
    On Error Resume Next ' Если лист с таким именем уже существует, переходим к следующей строке
    Set TargetWorksheet = TargetWorkbook.Worksheets("Лист6")
    If TargetWorksheet Is Nothing Then
        Set TargetWorksheet = TargetWorkbook.Worksheets.Add(After:=TargetWorkbook.Worksheets(TargetWorkbook.Worksheets.Count))
        TargetWorksheet.Name = "Лист6"
    End If
    On Error GoTo 0
    
    ' Цикл копирования данных
    For Each SourceWorksheet In SourceWorkbook.Worksheets
        If InStr(1, SourceWorksheet.Name, "ашан", vbTextCompare) > 0 Then
            ' Находим следующую пустую строку в столбце B на “Лист6”
            LastRow = TargetWorksheet.Cells(TargetWorksheet.Rows.Count, 2).End(xlUp).Row + 1
            
            ' Копируем данные из найденного листа на “Лист6”
            SourceWorksheet.UsedRange.Copy TargetWorksheet.Cells(LastRow, 2)
            
            ' Записываем имя листа в столбец A на той же строке, где были скопированы данные
            NextRow = TargetWorksheet.Cells(TargetWorksheet.Rows.Count, 2).End(xlUp).Row + 1
            
            With TargetWorksheet.Range("A" & LastRow & ":A" & NextRow - 1)
                .Value = SourceWorksheet.Name
                .HorizontalAlignment = xlCenter
                .VerticalAlignment = xlCenter
            End With
            
        End If
    Next SourceWorksheet
    
    ' Закрываем рабочую книгу-источник
    SourceWorkbook.Close SaveChanges:=False
    '------------------
    
    ' Declare a dictionary object
Dim dict As Object
Set dict = CreateObject("Scripting.Dictionary")

' Loop through the columns A and B on "Лист6" and store the sheet names and values as keys and items
Dim rng As Range
Dim cell As Range
Set rng = TargetWorksheet.Range("A2:B" & TargetWorksheet.Cells(TargetWorksheet.Rows.Count, 2).End(xlUp).Row)
For Each cell In rng.Columns(1).Cells
    If Not dict.Exists(cell.Value) Then
        dict.Add cell.Value, cell.Offset(0, 1).Value
    End If
Next cell

' Loop through the source worksheets again and compare the sheet names and values with the dictionary
For Each SourceWorksheet In SourceWorkbook.Worksheets
    If InStr(1, SourceWorksheet.Name, "ашан", vbTextCompare) > 0 Then
        ' Check if the sheet name exists in the dictionary
        If dict.Exists(SourceWorksheet.Name) Then
            ' Check if the value is different from the dictionary item
            If dict(SourceWorksheet.Name) <> SourceWorksheet.Range("A2").Value Then
                ' Find the matching row on "Лист6" and update the value
                Set cell = rng.Columns(1).Find(SourceWorksheet.Name, LookIn:=xlValues, LookAt:=xlWhole)
                If Not cell Is Nothing Then
                    cell.Offset(0, 1).Value = SourceWorksheet.Range("A2").Value
                End If
            End If
        Else
            ' The sheet name does not exist in the dictionary, so add it as a new key and item
            dict.Add SourceWorksheet.Name, SourceWorksheet.Range("A2").Value
            ' Find the next empty row on "Лист6" and copy the sheet name and value
            LastRow = TargetWorksheet.Cells(TargetWorksheet.Rows.Count, 2).End(xlUp).Row + 1
            TargetWorksheet.Cells(LastRow, 1).Value = SourceWorksheet.Name
            TargetWorksheet.Cells(LastRow, 2).Value = SourceWorksheet.Range("A2").Value
        End If
    End If
Next SourceWorksheet
    
End Sub