Я должен сравнить небольшую строку в строке. Например, у меня есть два столбца, которые А и В

A                   B
test_BL_pa.txt      1
test_AL_pa.txt      2 
test_BL_pa.txt      3 
test_CL_pa.txt      4

Входными данными являются test_BL, test_AL, test_CL. Я хочу получить значение в столбце B, соответствующее столбцу A. Следовательно, учитывая Output:

test_BL     4(1+3)
test_AL     2
test_CL     4

Не могли бы вы помочь мне для реализации его в Excel

1 ответ1

0

Этот макрос делает это

Sub UpdateStatus()

Dim row As Integer
row = 1 ' sets the starting row

Dim statisticRow As Integer
statisticRow = 1 ' sets the starting row for the results

Do While (True)

Dim currentValue As String
currentValue = Range("A" & row).Value

Dim otherValue As String

    If currentValue = "" Then
        Exit Do
    End If

Dim otherRow As Integer
otherRow = 1 ' sets the starting row where the results are


Do While (True) ' find it or add it

    otherValue = Range("F" & otherRow).Value
    Dim currentValueStatus As String

    If Left(currentValue, 7) = otherValue Then ' As expected sire, I found it. Can I eat now?

        currentValueStatus = Range("B" & row).Value
        Range("G" & otherRow).Value = Range("G" & otherRow).Value + Range("B" & row).Value

    Exit Do

    End If
    otherRow = otherRow + 1
    Loop
    row = row + 1

Loop

End Sub

Как вы можете видеть на рисунке ниже, я должен был установить критерии в столбце F. Так как ваш пост показывает, что «маленькая» строка имеет длину 7 символов и всегда первые 7 символов большой строки, мы можем использовать Левый () функция. Если это не всегда так, используйте функцию instr ()

И после запуска макроса

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .