Откуда берутся эти кавычки.
Sub ClipboardRemoveQuotes()
Dim strClip As String
strClip = Selection.Copy
strClip = GetClipboard()
On Error Resume Next — Needed in case clipboard is empty
strClip = Replace(strClip, Chr(34), "")
On Error GoTo 0
SetClipboard (strClip)
End Sub
либо можно OpenOffice попробовать, либо перенос строки делать условным обозначением, а в блокноте делать замену.
NatalieRedFox_333
Чего мне бояться? — подумала Красная Шапочка. )))
- 03.03.2022
- #5
Наверное это нормальное поведение. обычно делают свое копирование если по одной ячейке, или в блокноте уже делают замену.
Колхозят макросы если нужно копировать по одной ячейке
Как убрать кавычки при копировании из excel
Я копирую эту ячейку в текстовый файл, и он создает лишние кавычки


Если же я формулу напишу без СИМВОЛ(10) то кавычки не вставляются, но мне нужен перенос строки
Внешние ссылки удалены администрацией — это нарушение п.3 Правил форума
Я копирую эту ячейку в текстовый файл, и он создает лишние кавычки


Если же я формулу напишу без СИМВОЛ(10) то кавычки не вставляются, но мне нужен перенос строки
Внешние ссылки удалены администрацией — это нарушение п.3 Правил форума GAS1979
Я копирую эту ячейку в текстовый файл, и он создает лишние кавычки


Если же я формулу напишу без СИМВОЛ(10) то кавычки не вставляются, но мне нужен перенос строки
Внешние ссылки удалены администрацией — это нарушение п.3 Правил форума Автор — GAS1979
Дата добавления — 31.05.2018 в 17:53
Интуитивно понятный код — это когда интуитивно понятно, что это код.
GAS1979,
Заключая всё значение ячейки в кавычки при копировании, Excel дает понять, что внутри ячейки имеются непечатаемые символы такие как:
знак табуляции СИМВОЛ(9), перенос строки СИМВОЛ(10), СИМВОЛ(13), неразрывный пробел СИМВОЛ(160) и т.д.
Ведь Excel использует(добавляет) эти символы(9, 10, 13) для правильного отображения колонок/строк при копировании диапазона и даже отдельной ячейки.
GAS1979,
Заключая всё значение ячейки в кавычки при копировании, Excel дает понять, что внутри ячейки имеются непечатаемые символы такие как:
знак табуляции СИМВОЛ(9), перенос строки СИМВОЛ(10), СИМВОЛ(13), неразрывный пробел СИМВОЛ(160) и т.д.
Ведь Excel использует(добавляет) эти символы(9, 10, 13) для правильного отображения колонок/строк при копировании диапазона и даже отдельной ячейки. boa
Сообщение GAS1979,
Заключая всё значение ячейки в кавычки при копировании, Excel дает понять, что внутри ячейки имеются непечатаемые символы такие как:
знак табуляции СИМВОЛ(9), перенос строки СИМВОЛ(10), СИМВОЛ(13), неразрывный пробел СИМВОЛ(160) и т.д.
Ведь Excel использует(добавляет) эти символы(9, 10, 13) для правильного отображения колонок/строк при копировании диапазона и даже отдельной ячейки. Автор — boa
Дата добавления — 01.06.2018 в 12:26
Оставлять кавычки при копировании из ячейки
Проблема :
При копировании ячейки из Excel вне программы двойные кавычки добавляются автоматически.
Подробности :
Я использую Excel 2007 на компьютере с Windows 7. Если у меня есть ячейка со следующей формулой:
Вывод в ячейке (отформатированный как число) в Excel выглядит следующим образом:
Ну и хорошо. Но если я копирую ячейку в другую программу, например, в блокнот, я получаю раздражающие двойные кавычки в начале и в конце. Обратите внимание, что вкладки, созданные «CHAR (9)», сохраняются, и это хорошо.
Как я могу предотвратить появление этих двойных кавычек при копировании в другую программу? Другими словами, могу ли я предотвратить их автоматическое добавление при копировании ячейки в буфер обмена?
15 ответов
Если вы попытаетесь вставить в Word-Pad, Notepad ++ или Word, у вас не будет этой проблемы. Чтобы скопировать значение ячейки как чистый текст, для достижения того, что вы описываете, вы должны использовать макрос:
В книге, к которой вы хотите применить это (или в вашем Personal.xls, если вы хотите использовать в нескольких книгах), поместите следующий код в стандартный модуль:
Чтобы добавить стандартный модуль в свой проект (книгу), откройте VBE с помощью Alt + F11 , а затем щелкните правой кнопкой мыши свою книгу в верхнем левом окне проекта и выберите Вставить> Модуль. Вставьте код в окно модуля кода, которое откроется справа.
Вернувшись в Excel, выберите «Инструменты»> «Макрос»> «Макросы» и выберите макрос «CopyCellContents», а затем выберите «Параметры» в диалоговом окне. Здесь вы можете назначить макрос сочетанию клавиш (например, как CTRL + C для обычной копии) — я использовал CTRL + Q .
Затем, когда вы хотите скопировать одну ячейку в Блокнот / где угодно, просто нажмите Ctrl + q (или что угодно, что вы выбрали), а затем выполните CTRL + V или Edit > Вставьте в выбранное место назначения.
Мой ответ скопирован (с некоторыми дополнениями) из: здесь
РЕДАКТИРОВАТЬ : (из комментариев)
Если вы не нашли библиотеку Microsoft Forms 2.0 в списке литературы, вы можете попробовать
- вместо этого ищу FM20.DLL (спасибо @Peter Smallwood)
- нажав кнопку «Обзор» и выбрав C:\Windows\System32\FM20.dll (32 бит Windows) (спасибо @JWhy)
- нажав «Обзор» и выбрав C:\Windows\SysWOW64\FM20.dll (на 64-битной)
У меня только что возникла эта проблема, и упаковка каждой ячейки функцией CLEAN решила ее для меня. Это должно быть относительно легко сделать, выполнив =CLEAN( , выбрав свою ячейку, а затем автоматически заполнив остальную часть столбца. После того, как я это сделал, при вставке в Блокнот или любую другую программу больше не было повторяющихся кавычек.
Сначала вставьте его в Word, затем вы можете вставить его в блокнот, и он появится без кавычек.
Если вы хотите выделить несколько ячеек и скопировать их значения в буфер обмена без всех этих надоедливых кавычек, следующий код может оказаться полезным. Это усовершенствование кода, приведенного выше, от user3616725.
Мое решение, когда я столкнулся с проблемой кавычек, заключалось в том, чтобы убрать возврат каретки с конца текста моих ячеек. Из-за этих возвратов каретки (вставленных внешней программой) Excel добавлял кавычки ко всей строке.
Пожалуйста, используйте приведенную ниже формулу
И вы получите то, что хотите 😉
«Если вы хотите выбрать несколько ячеек и скопировать их значения в буфер обмена без всех этих надоедливых кавычек» ( без ошибки в решении для нескольких ячеек Питера Смоллвуда) «следующий код может быть полезен». Это усовершенствование кода, приведенного выше, от Питера Смоллвуда (которое «является усовершенствованием кода, приведенного выше от пользователя user3616725»). Это исправляет следующие ошибки в решении Питера Смоллвуда:
- Избегает ошибки компилятора «Переменная не определена» (здесь для «CR» — «clibboardFieldDelimiter»)
- Преобразуйте пустую ячейку в пустую строку вместо «0».
- Добавить табуляцию (ASCII 9) по сравнению с CR (ASCII 13) после каждой ячейки.
- Добавьте CR (ASCII 13) + LF (ASCII 10) (вместо CR (ASCII 13)) после каждой строки.
ПРИМЕЧАНИЕ. Вы по-прежнему не сможете копировать символы, встроенные в ячейку, которые могут вызвать выход из целевого поля, в которое вы вставляете эту ячейку (например, вкладка или CR при вставке в окно редактирования таблицы доступа или SSMS).
У меня была такая же проблема, и ни одно из решений этого сообщения мне не помогло. Затем я поделюсь решением, которое определенно сработало для меня, на случай, если другие могут оказаться в такой же ситуации.
Во-первых, это решение также соответствует одной ошибке, недавно сообщенной Microsoft, которая приводила к преобразованию содержимого буфера обмена в нечитаемое содержимое после любой модификации с использованием VBA, когда пользователь обращался к любой «папке быстрого доступа» с помощью проводника файлов.
Документация по устранению ошибки копирования прошлого, код которой будет использоваться в этом ответе, для удаления кавычек из буфера обмена: https://docs.microsoft.com/en-us/office/vba/access/Concepts/Windows-API / отправить-информацию-в-буфер обмена
Вам нужно будет создать макрос, как показано ниже, и назначить ему «ctrl + c» в качестве горячей клавиши. (Назначение горячих клавиш = вкладка «Разработчик», «Макросы», щелкните макрос, параметры, затем введите букву «c» в поле горячих клавиш).
Это все еще понадобится вам для создания функций «SetClipboard» и «GetClipboard».
Ниже у нас есть определение функций «SetClipboard» и «GetClipboard» с некоторыми корректировками для разных версий Excel. (Поместите приведенный ниже код в модуль)
Я надеюсь, что это может помочь другим так же, как помогло мне.
Вы можете сделать это в макросе Excel через VBA, отправив результаты в файл:
И если вы хотите получить имена файлов и содержимое в несколько файлов, вот небольшой фрагмент, который избегает двойных кавычек вокруг вывода.
Также можно удалить эти двойные кавычки, поместив результат в функцию «Очистить».
Вывод будет вставлен без двойных кавычек в другие программы, такие как Notepad ++.
- если формула имеет многострочную форму (означает наличие разрыва строки в формуле), то копипаста будет работать таким образом
- если можно удалить несколько строк, то при копировании и вставке кавычки не появятся.
- иначе используйте функцию CLEAN , как сказано @greg в предыдущем ответе
Примечание. Причина появления кавычек заключается в том, что при перемещении данных из Excel в буфер обмена они полностью соответствуют стандартам CSV, которые включают значения кавычек, которые включают табуляции, новые строки и т. Д. (А символы двойных кавычек заменяются двумя символами двойных кавычек)
Таким образом, другой подход, особенно как в случае OP, когда вкладки / новые строки связаны с формулой, заключается в использовании альтернативных символов для вкладок и жестких возвратов. Я использую ascii Unit Separator = char (31) для вкладок и ascii Record Separator = char (30) для новых строк.
Тогда при вставке в текстовый редактор не будут задействованы дополнительные правила CSV, и вы сможете выполнить быстрый поиск и заменить их, чтобы снова преобразовать их.
Если вкладки / новые строки встроены в данные, вы можете выполнить поиск и заменить в Excel, чтобы преобразовать их.
Независимо от того, используете ли вы формулу или изменяете данные, ключ к выбору разделителей — никогда не использовать символы, которые могут быть в фактических данных. Вот почему я рекомендую символы ascii низкого уровня.
Намного более простой способ:
Сначала вставьте в черновик нового письма — кавычки не будут.
Ctrl-A и снова скопируйте оттуда, отбросьте черновик письма.
Возможная проблема в связи с ответом от «user3616725»:
Я использую Windows 8.1, и, похоже, проблема со связанным кодом VBA из принятого ответа от «user3616725»:
Подробности:
Выполняя приведенный выше код и вставляя буфер обмена в ячейку в Excel, я получаю два символа, состоящих из квадратов со знаком вопроса внутри, например: ⍰⍰. Вставка в Блокнот даже ничего не показывает.
Решение:
После долгих поисков я нашел еще один сценарий VBA от пользователя «Nepumuk», который использует API Windows. Вот его код, который наконец-то сработал для меня:
Чтобы использовать его так же, как и в первом коде VBA, приведенном выше, измените Sub «Beispiel ()» с:
И запустите его через меню макросов Excel, как это было предложено пользователем 3616725 из принятого ответа:
Вернувшись в Excel, выберите «Инструменты»> «Макрос»> «Макросы» и выберите макрос «CopyCellContents», а затем выберите «Параметры» в диалоговом окне. Здесь вы можете назначить макрос сочетанию клавиш (например, Ctrl + c для обычного копирования) — я использовал Ctrl + q.
Затем, когда вы хотите скопировать одну ячейку в Блокнот / где угодно, просто нажмите Ctrl + q (или что угодно, что вы выбрали), а затем выполните Ctrl + v или Edit> Paste в выбранном вами месте назначения.
Редактировать (21 ноября 2015 г.):
@ комментарий от «dotctor»:
Нет, серьезно, это не новый вопрос! На мой взгляд, это хорошее дополнение к принятому ответу, поскольку мой ответ касается проблем, с которыми вы можете столкнуться при использовании кода из принятого ответа. Если бы у меня было больше репутации, я бы написал комментарий.
@ комментарий от «Teepeemm»:
Да, вы правы, ответы, начинающиеся с заголовка «Проблема:», вводят в заблуждение. Изменено на: «Возможная проблема в связи с ответом пользователя« user3616725 »:». В качестве комментария я бы, конечно, написал намного компактнее.
Как скопировать многострочный текст из Excel без кавычек?
Когда вы создаете многострочную строку в ячейке Excel (с помощью Alt-Enter), если вы копируете эту ячейку в текстовый редактор, Excel автоматически добавляет двойные кавычки («) вокруг полной строки, то есть:
Когда вы копируете только столбец со значениями в текстовый редактор, мы получаем:
Как я могу сказать Excel не добавлять цитату вокруг многострочного текста при копировании из Excel?
Редактировать: текстовые редакторы, которые я пробовал, отображают это поведение:
- MS Word
- Word Pad
- Блокнот
- Notepad++
- SQL Server Studio
Если у вас есть предложение по использованию определенного редактора (или одного из вышеперечисленных), скажите, пожалуйста, какой и как его использовать .
15 ответов 15
Если вы скопируете диапазон из Excel (2010) в Word, вы получите текст по своему усмотрению, без кавычек. Затем вы можете скопировать его снова в конечный пункт назначения, например, в блокнот. Excel-> Word-> Блокнот даст вам результаты, которые вы хотите.
То, как ваш текст будет скопирован в Word, зависит от выбранной опции форматирования. В Word 2010 по умолчанию используется формат HTML Format . Существует четыре основных варианта копирования текста в Word. ( Formatted Text (RTF) , Unformatted Text , HTML Format и Unformatted Unicode Text )
Вставка с форматированным текстом создает мини-таблицы в Word. (Синие очертания.)

Чтобы получить неформатированный текст в Word без двойных кавычек:
- Вставьте текст в формате, чтобы он создал таблицу.
- Выберите таблицу и скопируйте ее.
- Переместитесь в пустое место и вставьте новую копию как неформатированный текст. ( Alt + E , S )
Это также работает, чтобы вставить результаты без кавычек в другой редактор. Просто измените шаг 3, чтобы вставить в другой редактор.
Однако, вероятно, было бы быстрее просто вставить как обычно, а затем использовать Replace, чтобы найти и удалить все двойные кавычки.
Самый простой способ, который я нашел, состоит в объединении ячеек, которые вы хотите разместить, в несколько строк с чем-то «особенным» между ними, а не с cr/lf. Тильда обычно хорошо работает для меня. Например, в столбце G:
В этом примере конечная цель состоит в том, чтобы получить текстовый файл со значениями из E1 в одной строке, затем F1 в новой строке, затем E2, F2 и т.д. Конечно, вы могли бы так же легко построить G1 из других значения, только что включенные
для разрывов строк.
Затем получить многострочный текстовый файл в Notepad++
- Вырезать и вставить в Блокнот ++
- Ctrl-H, чтобы открыть диалог замены
- Убедитесь, что выбран вариант расширенного поиска
- Замените все
Это не может быть подготовкой к CSV-файлу, потому что они были бы довольно глупы, настолько сложны, как верхние и конечные ячейки, которые содержат непечатаемые символы с кавычками, и не делают то же самое для ячеек, которые содержат запятые (чего он не делает. «т).
Тем не мение. Я столкнулся с этой проблемой, когда пытался создать метки адресов из полей Имя, Фамилия, Адресная строка 1 . как:
CHAR(13) за которым следует CHAR(10) являющийся новым абзацем при просмотре текстового файла в шестнадцатеричном редакторе.
Мой способ обойти это раздражение:
- скопируйте и вставьте ячейки / столбец в Word.
- Используйте раскрывающийся список символов буфера обмена (внизу слева на странице или вставленный текст), чтобы выбрать « Сохранить только текст».
- Выберите вставленный текст. Это необходимо сделать только в том случае, если документ содержит другие элементы, которые могут быть затронуты
- Нажмите Ctrl + H, чтобы открыть диалоговое окно « Найти и заменить».
- В поле « Найти что» введите: «^p» (все четыре символа).
Возможно, вам придется перейти в меню Инструменты -> Параметры автозамены, а затем на обе вкладки Автоформат, чтобы убедиться, что это не изменит ваши прямые кавычки) - В поле, Заменить на, введите: ^p (2 символа)
- Теперь нажмите кнопку « Заменить все»
- Наконец, вам придется вручную удалить двойные кавычки в начале и в конце импортированного блока
Это основано на Office 2003, поэтому ваша версия Microsoft Word может немного отличаться.
У меня была та же проблема, и я использовал следующие шаги (я использую Office 2007, но я думаю, что это работает и для более поздних версий):
- Выделите диапазон ячеек, содержащих многострочный текст из Excel, который я хочу вставить в другой редактор, а затем выберите «Копировать».
- В Word 2007 я вставил скопированный диапазон ячеек в таблицу.
- Выберите стол.
- На вкладке Layout выберите Select-Table.
- В разделе данных выберите Преобразовать в текст и выберите Метки абзаца.
В результате получается исходная таблица, преобразованная в текст, с символами новой строки в конце каждой строки и метками абзаца в конце последней строки в каждой ячейке.
Вы можете сохранить документ Excel как веб-страницу, а затем скопировать текст с веб-страницы. Это хорошо работает для одного столбца данных, но убедитесь, что вы установили ширину столбца равной ширине текста, иначе это добавит разрывы строк.
Это не проблема Excel. Как говорит предыдущий автор, он просто выводит действительные данные CSV. Это будет зависеть от редактора, который вы положите в него, чтобы посмотреть после его форматирования. Я бы предложил использовать что-то более умное, чем блокнот . Вы можете использовать MS Word в качестве посредника из Excel в любой текстовый редактор, который вы хотите использовать, кроме Word.
У меня была эта проблема сегодня, поэтому я решил опубликовать ответ на тот случай, если кто-то все еще застрял на ней.
Вы можете обойти это, выделив ячейку, а затем скопировать и вставить код прямо из текстовой панели вверху, щелкнув по нему и выделив все вручную.
Я сделал это только в Excel 2010, поэтому я не знаю, будет ли это работать для более ранних версий.
Я знаю, что это старая тема, но я решил использовать CLEAN, как предложено, скопировать эти ячейки и вставить значения обратно в лист. Таким образом, я мог редактировать текст до конечного результата, копировать и вставлять ячейки в текстовый документ без кавычек.
Я думаю, что очистка текста, а затем окончательное форматирование, скорее всего, сработает (по крайней мере, для меня).
Была такая же проблема, наконец-то ее очень легко исправить. У меня было 600 строк длинных описаний продуктов. Чтобы исправить эту проблему, я сделал следующее:
1) Выберите весь столбец и нажмите «Обернуть текст».’
2) Удерживая выбранный столбец, снова нажмите «Обтекание текстом» (чтобы текст на 100% НЕ был обернут).
PRESTO — текст, скопированный из каждой ячейки идеально, без кавычек (даже если они были длинными абзацами).
По умолчанию Excel добавляет кавычки к любому многострочному тексту. Таким образом, простое решение, предоставленное вышеописанным процессом, состоит в том, чтобы гарантировать, что ваши ячейки с длинным текстом не будут автоматически переноситься на несколько строк.
Возможно, стоит отметить, что до того, как я это сделал, клетки выглядели нормально и НЕ выглядели обернутыми. Я думаю, что описанный выше процесс «говорит» Excel не интерпретировать любую ячейку как «многострочный» текст, даже если это длинный абзац, решая, таким образом, проблему «Excel добавляет цитаты в скопированный текст».