Excel объединяет текст с символом новой строки и изменением формата из нескольких строк - PullRequest
0 голосов
/ 14 марта 2020

У меня есть лист Excel следующим образом

cell a1 has text- 1234
cell d1 has text- abc.com
cell f1 has text- AZ, USA 85663

enter image description here

Я создал формулу в ячейке i1 как =CONCATENATE("Gaaa Reference No. I-20-",A1,CHAR(10),D1,CHAR(10),F1) Затем использовал шаги в этом ссылка для объединения трех столбцов с символом новой строки между строками.

Я хочу, чтобы первая строка была жирной, а вторая - курсивом. Вывод должен быть times new roman шрифт. Я попытался изменить форматирование столбцов a и d, но это не помогло

  1. Как я мог изменить форматирование? Текущие выходные данные указаны ниже

  2. У меня есть лист Excel с несколькими заполненными строками. Я хотел бы иметь тот же формат для всего столбца I

  3. Кажется, что для этого требуется код VBA. Пожалуйста, укажите, что

enter image description here

1 Ответ

3 голосов
/ 14 марта 2020

Вставьте новый модуль кода в VBA и используйте следующий код ...

Option Explicit

Sub FormatConcatColumn()

    Dim i&, rows&, LF, v1, v2, v3, vOut, r As Range

    rows = 60  '<-- change to 200 or however many rows you need

    ReDim vOut(1 To rows, 1 To 1)
    ReDim LF(1 To rows, 1 To 2)

    With [a1].Resize(rows)

        v1 = .Value2
        v2 = .Offset(, 3).Value2
        v3 = .Offset(, 5).Value2

        For i = 1 To rows
            vOut(i, 1) = v1(i, 1) & vbLf & v2(i, 1) & vbLf & v3(i, 1)
            LF(i, 1) = Len(v1(i, 1))
            LF(i, 2) = LF(i, 1) + Len(v2(i, 1))
        Next

        With .Offset(, 8)
            .Clear
            .Value2 = vOut
            .Font.Name = "Times New Roman"

            i = 0
            For Each r In .Cells
                i = i + 1
                r.Characters(1, LF(i, 1)).Font.FontStyle = "Bold"
                r.Characters(LF(i, 1) + 1, LF(i, 2) - 2).Font.FontStyle = "Italic"
                DoEvents
            Next
        End With

    End With

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