Mantenha a formatação do Excel ao copiar o conteúdo para um editor de texto

3

Eu tenho um arquivo do Excel com uma coluna de códigos que indicam relacionamentos pai-filho com algum tipo de formatação:

Orecuoécontroladocomaopção"Recuo no nível" em "Esquerda (recuo)". Copiar e colar em um editor de texto não mantém espaçamento.

Gostaria de copiar e colar o espaçamento para um editor de texto. Posso de alguma forma tornar a formatação explícita - adicionar uma coluna que indique o nível de recuo ou algo semelhante a isso?

    
por ipavlic 05.04.2013 / 14:54

2 respostas

2

Eu não acho que você pode fazer isso com os recursos internos do Excel, no entanto, você pode criar uma macro do Excel para fazer isso:

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

Abra seu editor de VBA (Alt + F11), crie um novo módulo e cole o código acima. Depois disso, selecione as células que contêm os valores que você deseja copiar (com recuo) e depois de executar essa macro, simplesmente use a opção Colar em seu editor de texto para manter os níveis de recuo.

    
por 05.04.2013 / 18:06
1

Se você preferir evitar o VBA, tente isso. Este é o meu método preferido - eu simplesmente configurei larguras de colunas para serem muito estreitas (por exemplo, 10px).

Vocêpodedesativarlinhasdegradeoudefinirbordasparatorná-lasmaisagradáveis.

Se os seus dados incluírem números (como fazem seus dados de exemplo), você precisará convertê-los todos em texto adicionando um ' (apóstrofo) para sinalizar dados de texto - caso contrário, o conteúdo completo não aparecerá e você Eu só vou pegar # .

Se você fizer isso, receberá essas tags verdes dizendo que você tem um erro. Selecione tudo, clique com o botão direito e diga ignorar os erros.

Quandovocêcopiaparaseueditordetexto,osrecuosestarãolácomoguias.

    
por 05.04.2013 / 19:41