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

Мне нужен вывод, как показано ниже

Я попробовал ниже программы

Sub TestCustomMerge()

Dim row2&, row4&, val1&, val2&, val3&
Application.DisplayAlerts = False

row2 = 2
row4 = 4

'// error at below line i.e. Run-time error  13: Type mismatch
val1 = Cells(row2, 1).Value

' // Also I am not getting how concatenate value of Cells(row2, 2) and Cells(row4, 2)
' // so that they appear as it is (not in a single line)
val2 = Cells(row2, 2).Value

Cells(row2, 1).Cells(row4, 1).Merge
Cells(row2, 1).Value = val1
Cells(row2, 2).Cells(row4, 2).Merge

'// set concatenated value here
Cells(row2, 2).Value = val2



Application.DisplayAlerts = True
End Sub

Но это дает Run-time error 13: Type mismatch

2 ответа2

0

Он возвращает ошибку, потому что val1 определен как long, а значение ячейки является строкой. Я удалил & персонажей из тусклой части. Также часть слияния обновлена.

Sub TestCustomMerge()
    Dim row2, row4, val1, val2, val3
    Application.DisplayAlerts = False
    row2 = 2
    row4 = 4
    val1 = Cells(row2, 1).Value
    val2 = Cells(row2, 2).Value
    Range(Cells(row2, 1), Cells(row4 - row2, 1)).Merge
    Cells(row2, 1).Value = val1
    Range(Cells(row2, 2), Cells(row4 - row2, 2)).Merge
    Cells(row2, 2).Value = val2
    Application.DisplayAlerts = True
End Sub
0

Почему бы не использовать сводную таблицу? если ваши данные огромны, у вас возникнут проблемы с запуском этого vba-скрипта в несколько строк

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