Объедините строки так, чтобы весь лист показывал «текст» и «URL» один под другим - PullRequest
0 голосов
/ 04 мая 2020

See attached image Есть куча выделенного желтого текста. Я хочу объединить строк, например, 6, 7, 8 и 9 в 6. Аналогично 17 и 18 в 17. Итак, и так далее

Итак, конечный результат, который я хочу, это

Text
URL
Text
URL
Text
URL

Примечание: 1. Это пример файла, но он может содержать сотни строк с неровными строками для объединения.

-------- Update - ----- Я использовал следующую формулу и затем отфильтровал, поэтому только «Комментарии» показывают затем вручную go через строку и объединяют вручную. Я хочу автоматическое решение c.

  =MOD(ROW(),2)

1 Ответ

1 голос
/ 05 мая 2020

Я уверен, что есть МНОГИЕ способы сделать подобные вещи. Это настолько элегантно, насколько я могу.

Sub Macro()
Dim lngRow As Long
For lngRow = ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Row To 2 Step -1
    If Range("A" & lngRow).Interior.ColorIndex = 6 Then
        If Range("A" & lngRow).Interior.ColorIndex = 6 And Range("A" & lngRow - 1).Interior.ColorIndex = 6 Then
            Range("A" & lngRow - 1) = Range("A" & lngRow - 1) & vbCrLf & Range("A" & lngRow)
            Rows(lngRow).Delete
        End If
    End If
Next
End Sub

До:

enter image description here

После:

enter image description here

Наконец, если у вас нет цветных ячеек, используйте код ниже.

Sub MacroUpdate()
Dim lngRow As Long
Dim LResult As String
For lngRow = ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Row To 2 Step -1
    If Left(Range("A" & lngRow), 4) <> "http" Then
        If Left(Range("A" & lngRow), 4) <> "http" And Left(Range("A" & lngRow - 1), 4) <> "http" Then
            Range("A" & lngRow - 1) = Range("A" & lngRow - 1) & vbCrLf & Range("A" & lngRow)
            Rows(lngRow).Delete
        End If
    End If
Next
End Sub

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...