VBA нужен макрос, который объединяет верхние 3 строки таблицы Excel - PullRequest
0 голосов
/ 30 августа 2011

Мне нужен макрос, который объединит верхние 3 строки таблицы Excel вместе, а затем заменит исходные 3 строки на новую.

Например:

|      This     |
|is     | an    |
|example|       |

будетстать

|This_is_example|This_an|

Предложения?

1 Ответ

2 голосов
/ 31 августа 2011

Предполагается, что вы объединили ячейки:

Sub Tester()

    Dim c As Range, rngMerge As Range

    For Each c In ActiveSheet.Range("A1").Resize(1, 100).Cells
        Set rngMerge = c.MergeArea
        If rngMerge.Cells.Count > 1 Then
            c.UnMerge
            rngMerge.Value = rngMerge.Cells(1).Value
        End If
        c.Value = JoinUp(c.Resize(3, 1), "_")
    Next c
    ActiveSheet.Range("A2:A3").EntireRow.Delete
End Sub


Function JoinUp(rng As Range, Optional Delim As String = "") As String
    Dim c As Range, rv As String
    For Each c In rng.Cells
        If Len(c.Value) > 0 Then
            rv = rv & IIf(Len(rv) > 0, Delim, "") & c.Value
        End If
    Next c
    JoinUp = rv
End Function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...