3

У меня есть файл Excel со столбцом кодов, которые указывают родитель-дочерние отношения с некоторым форматированием:

коды

Отступ контролируется с помощью параметра "Уровень отступа" в «Слева (отступ)». Копирование и вставка в текстовый редактор не сохраняют пробелы.

Я хотел бы иметь возможность копировать и вставлять интервалы в текстовый редактор. Можно ли как-то сделать форматирование явным - добавить столбец, который указывает уровень отступа или что-то подобное?

2 ответа2

2

Я не думаю, что вы можете сделать это с помощью встроенных функций Excel, однако вы можете создать макрос Excel, чтобы сделать это:

Sub CopyCellValuesWithIndent()

    Dim rSelection As Range, c As Range
    Dim lIndent As Long, i As Long
    Dim sCopyString As String
    Dim DataObj As Object

    'LATE BIND THE "MSForms.DataObject" LIBRARY TO USE THE CLIPBOARD
    Set DataObj = CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")

    Set rSelection = Selection

    For Each c In rSelection.Cells

        lIndent = c.IndentLevel

        'ADD INDENT
        If lIndent > 0 Then
            For i = 1 To lIndent

                sCopyString = sCopyString & vbTab

            Next i
        End If

        sCopyString = sCopyString & c.Value & vbCrLf

    Next c

    sCopyString = Left(sCopyString, InStrRev(sCopyString, vbCrLf))

    DataObj.SetText sCopyString
    DataObj.PutInClipboard

End Sub

Откройте редактор VBA (Alt+F11), создайте новый модуль и вставьте приведенный выше код. После этого выберите ячейки, содержащие значения, которые вы хотите скопировать (с отступом), и после запуска этого макроса просто используйте параметр вставки в текстовом редакторе, чтобы сохранить уровни отступа.

1

Если вы предпочитаете избегать VBA, вы можете попробовать это. Это мой предпочтительный метод - я просто устанавливаю ширину столбцов очень узкой (например, 10 пикселей).

вложенные строки

Вы можете отключить линии сетки или установить границы, чтобы она выглядела лучше.

вложенные строки без линий сетки

Если ваши данные содержат числа (как и в примере данных), вам необходимо преобразовать их все в текст, добавив ' (апостроф) для обозначения текстовых данных - в противном случае полное содержимое не появится, и вы просто получите # .

Если вы сделаете это, вы получите эти зеленые метки, говорящие, что у вас есть ошибка. Выберите все, щелкните правой кнопкой мыши и произнесите игнорировать ошибки.

игнорировать ошибки

Когда вы копируете в свой текстовый редактор, отступы будут там как вкладки.

вкладки в блокноте

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