Я заметил, что ячейка, которая содержит вкладку , копируется со встроенными кавычками. Я ищу для копирования такого рода ячейки без кавычек.


Наглядный пример

У меня 5 клеток; А1, А2, А3, А4 и А5. Формулы для них:

Вот как они будут выглядеть в Excel:

Формулы установлены так, чтобы ожидаемый результат при копировании ячеек в текстовый редактор был таким:

К сожалению, вот что я получаю:

Проблема с кавычками. Мне нужно скопировать эти ячейки без кавычек.

1 ответ1

2

Как насчет решения VBA? Это скопирует все выбранные из верхней левой выбранной ячейки в нижнюю правую выбранную ячейку. Если вы выберете несоответствующие ячейки, этот код в любом случае соберет все, что находится между верхним левым и нижним правым. Вы можете изменить это, конечно. Так было проще. Он помещает вкладки между столбцами и разрывы строк между строками.

Sub CopyText()

    Dim obj As Object
    Dim rng As Range
    Dim r As Long, c As Long
    Dim s As String
    Dim rTL, rBR, cTL, cBR

    rTL = Selection.Cells(1, 1).Row
    cTL = Selection.Cells(1, 1).Column

    For Each rng In Selection.Cells
        If rng.Row < rTL Then rTL = rng.Row
        If rng.Column < cTL Then cTL = rng.Column
        If rng.Row > rBR Then rBR = rng.Row
        If rng.Column > cBR Then cBR = rng.Column
    Next

    For r = rTL To rBR
        For c = cTL To cBR
            s = s & Cells(r, c).Value
            If c < cBR Then s = s & Chr(9)
        Next
        If r < rBR Then s = s & vbNewLine
    Next

    Set obj = CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
    obj.SetText s
    obj.PutInClipboard
    Set obj = Nothing

End Sub

Если вам интересно об этой части:

Set obj = CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")

... это просто версия позднего связывания Set obj = New DataObject поэтому вам не нужно добавлять ссылки в VBA.

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