Pertanyaan Biarkan format Excel saat menyalin konten ke editor teks


Saya memiliki file Excel dengan kolom kode yang menunjukkan hubungan orangtua-anak dengan beberapa jenis pemformatan:

Codes

Indent dikendalikan dengan opsi "Indent Level" pada "Left (Indent)". Menyalin dan menempel ke editor teks tidak menjaga jarak.

Saya ingin dapat menyalin dan menempelkan spasi ke editor teks. Dapatkah saya entah bagaimana membuat format eksplisit - tambahkan kolom yang menunjukkan tingkat indentasi atau sesuatu yang mirip dengan itu?


3
2018-04-05 12:54


asal




Jawaban:


Saya tidak berpikir Anda dapat melakukan ini dengan fitur-fitur bawaan Excel, namun Anda dapat membuat makro Excel untuk melakukan ini:

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

Buka VBA Editor Anda (Alt + F11), buat modul baru dan tempelkan kode di atas. Setelah itu, pilih sel yang berisi nilai yang ingin Anda salin (dengan indent) dan setelah menjalankan makro ini cukup gunakan opsi tempel di editor teks Anda untuk mempertahankan tingkat indentasi.


2
2018-04-05 16:06





Jika Anda lebih suka menghindari VBA, Anda dapat mencoba ini. Ini adalah metode yang saya sukai - saya hanya mengatur lebar kolom menjadi sangat sempit (misalnya 10px).

nested rows

Anda dapat mematikan garis grid, atau mengatur batas agar terlihat lebih bagus.

nested rows without gridlines

Jika data Anda menyertakan angka (seperti yang dilakukan data sampel Anda), Anda harus mengonversinya semuanya menjadi teks dengan menambahkan ' (tanda kutip) untuk menandai data teks - jika tidak, konten lengkap tidak akan muncul dan Anda hanya akan mendapatkan #.

Jika Anda melakukan ini, Anda akan mendapatkan tag hijau ini mengatakan Anda memiliki kesalahan. Pilih semua, klik kanan dan katakan abaikan kesalahan.

ignore errors

Ketika Anda menyalin ke editor teks Anda, indentasi akan ada di sana sebagai tab.

tabs in notepad


1
2018-04-05 17:41



+1 untuk solusi non-VBA. Perhatikan bahwa tidak perlu menggunakan ' (tanda kutip) untuk menyimpan angka sebagai teks (dengan demikian mempertahankan nol depan) jika Anda hanya mengubah format nomor sel menjadi Text sebelum memasukkan nilai. - Taliesin
Saya mencobanya tetapi tidak berhasil untuk saya. Saya di Excel 2010. Jika Anda menemukan Anda tidak perlu melakukan itu maka :) besar satu langkah kurang! - Andi Mohr