-1

В листе Excel у меня есть ячейки с несколькими значениями, разделенными запятыми. Я хочу объединить соответствующие значения двух ячеек. Пример:

Cell_A1 (A,B,C,D) and Cell_B1 (E,F,G,H)  
Then in Cell_C1 it should be (AE,BF,CG,DH). 

2 ответа2

0

Это делает это

Option Explicit

Sub DoTheThing()

Dim row As Integer
row = 1 ' WHAT IS THE STARTING ROW

'Let's clear the answers

Range("D:F").Cells.Clear

Do While (Range("A" & row).Value <> "")

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

    Dim vals() As String
    vals = Split(Range("B" & row).Value, ",")

    Dim result As String
    result = ""

    Dim i As Integer

    For i = 0 To UBound(vals)

        If CSng(lookUpValue) >= CSng(vals(i)) Then
            result = result & "Yes, "
        Else
            result = result & "No, "
        End If

    Next i

    result = Trim(result)
    result = Left(result, Len(result) - 1)

    Range("D" & row).Value = result

    result = "" ' reset it
     Dim valD() As String
    valD = Split(Range("C" & row).Value, ",")

     For i = 0 To UBound(valD)

        If CSng(lookUpValue) <= CSng(valD(i)) Then
            result = result & "Yes, "
        Else
            result = result & "No, "
        End If

    Next i

    result = Trim(result)
    result = Left(result, Len(result) - 1)

    Range("E" & row).Value = result


'finally

    Dim splitD() As String
    splitD = Split(Range("D" & row).Value, ",")


    Dim splitE() As String
    splitE = Split(Range("E" & row).Value, ",")

    result = ""

    Dim length As Integer
    length = UBound(splitD)
    For i = 0 To length 'both should have the same values according to @Raw
        If (i = length) Then
            Range("F" & row).Value = Range("F" & row).Value & splitD(i) & splitE(i)
        Else
            Range("F" & row).Value = Range("F" & row).Value & splitD(i) & splitE(i) & ","
        End If
    Next i

    row = row + 1

Loop

End Sub

До

После

0

Хороший вопрос Пожалуйста, найдите изображение ниже для вашего ответа.
Примечание-1: Добавьте запятую в качестве последнего символа в ваши ячейки, которые вы хотите разделить - в противном случае вы получите ошибку #value в последнем ряду.
разделить содержимое клетки

Теперь вы должны сделать то же самое с другой клеткой и получить аналогичный результат.

В качестве последней части используйте функцию concatenate для объединения пар из двух столбцов и получения конечного результата.
Конкатенация будет выглядеть примерно так (предположим, что ячейка A2 содержит запятую)
=concatenate(C3,$A$2,E3) Также предполагается, что E3 содержит результат, который должен быть объединен с C3.
Если у вас есть какие-либо вопросы, не стесняйтесь комментировать.

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