Кавычки появляются при копировании из Excel

Обновлено: 23.11.2024

Проблема:
При копировании ячейки из Excel вне программы автоматически добавляются двойные кавычки.

Подробности:
Я использую Excel 2007 на компьютере с Windows 7. Если у меня есть ячейка со следующей формулой:

Вывод в ячейке (отформатированный как число) выглядит в Excel следующим образом:

Ну и хорошо. Но если я скопирую ячейку в другую программу, например блокнот, я получаю надоедливые двойные кавычки в начале и в конце. Обратите внимание, что вкладки, созданные с помощью "CHAR(9)", сохраняются, и это хорошо.

Как сделать так, чтобы эти двойные кавычки не появлялись при копировании в другую программу? Другими словами, могу ли я запретить их автоматическое добавление при копировании ячейки в буфер обмена?

Вы пробовали изменить формат на что-то другое, кроме числа? Я думаю, что видел способы обойти это, но я не могу открыть Excel в данный момент, я вернусь через несколько минут, если ответа все еще нет.

@McAdam331 в моей настройке, если формат похож на текст, ячейка отображает формулу, а не вычисленный результат. По какой-то причине форматирование в виде числа переопределяет это.

Почему вы решили использовать эту формулу? Это потому, что Excel не поддерживает простой способ вставки символов табуляции? Кажется, я тоже не могу обойти это, возможно, есть варианты, отличные от Excel, которые вы можете использовать, но я не уверен, какова природа проекта.

Кроме того, это может быть хлопотно, но если вы откроете Excel и начнете вводить текст в ячейку (которая по умолчанию имеет формат «Общий») и введете текст, он будет скопирован без кавычек. (Проверено с использованием Excel 2013 и Notepad++) Повлияет ли на ваш проект ввод 4 пробелов вместо табуляции? Опять же, трудно сказать, не зная остальной проблемы.

@McAdam331, к сожалению, мне нужно, чтобы это работало именно так, как я написал здесь, за исключением двойных кавычек в начале и конце. Пожалуйста, не позволяйте вкладкам отвлекать внимание от этого вопроса — они должны быть там.

15 ответов 15

У меня только что была эта проблема, и обертывание каждой ячейки функцией CLEAN решило ее для меня. Это должно быть относительно легко сделать, выполнив =CLEAN( , выбрав свою ячейку, а затем автоматически заполнив остальную часть столбца. После того, как я это сделал, вставка в Блокнот или любую другую программу больше не содержала повторяющихся кавычек.

Хороший ответ для удаления лишних кавычек, но, к сожалению, он также стирает символы табуляции. который, в вопросе, я хочу сохранить. Тем не менее, спасибо за участие!

Это сработало для меня, я не заботился о вкладках - на самом деле я хотел, чтобы все они и символы новой строки были удалены в любом случае.

Если вы попытаетесь вставить в 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-разрядной версии)

@monkeyintern Я думаю, что у меня было несколько строк текста в одной ячейке, и разделение их на одну строку в каждой ячейке позволило мне обойти это.

@user3616725 Обновленные версии могли изменить это поведение, но текущие версии Word и Notepad++ (на дату публикации этого комментария) вставляют эти кавычки при выборе одной или нескольких ячеек.

Сначала вставьте его в Word, затем вы можете вставить его в блокнот, и он появится без кавычек

Поддерживаю этот вариант. в моем случае моя проблема заключалась в том, что для определенного типа запроса, который я получаю, данные поступают в файл Excel, и мне нужно вставить их в обычное текстовое поле. Когда я это делаю, я получаю кавычки.Я использовал текстовый редактор, чтобы удалить лишние кавычки (он тоже цитировал кавычки... раздражает!). В поисках простого решения я обнаружил, что вставка в Word сначала работает, поскольку лишние кавычки исчезли. Хотел бы я проголосовать за это 10 раз :)

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

См. мой ответ, основанный на этом ответе, в котором исправлены следующие ошибки: 1. Преобразовать пустую ячейку в пустую строку вместо «0». 2. Добавление Tab (ASCII 9) по сравнению с CR (ASCII 13) после каждой ячейки. 3. Добавьте CR (ASCII 13) + LF (ASCII 10) (по сравнению с CR (ASCII 13)) после каждой строки. ПРИМЕЧАНИЕ. Вы по-прежнему не сможете копировать символы, встроенные в ячейку, которые могут привести к выходу из целевого поля, в которое вы вставляете эту ячейку (например, Tab или CR при вставке в окно редактирования таблицы Access или SSMS).

Мое решение, когда я столкнулся с проблемой кавычек, состояло в том, чтобы убрать возврат каретки из конца текста моих ячеек. Из-за этих возвратов каретки (вставленных внешней программой) Excel добавлял кавычки ко всей строке.

Кавычки также могут быть результатом CR/LF внутри формулы (не обязательно в конце) или табуляцией, как в исходном вопросе этой темы (char(9)).

Возможная проблема в связи с ответом от "user3616725":
У меня Windows 8.1, и, похоже, возникла проблема со связанным кодом VBA из принятого ответа от "user3616725":

Подробности:
Выполняя приведенный выше код и вставляя буфер обмена в ячейку Excel, я получаю два символа, состоящие из квадратов со знаком вопроса внутри, например: ⍰⍰. Вставка в Блокнот даже ничего не показывает.

Решение:
После долгих поисков я нашел еще один скрипт VBA от пользователя "Nepumuk", который использует Windows API. Вот его код, который наконец сработал для меня:

Чтобы использовать его так же, как первый код VBA сверху, измените Sub "Beispiel()" с:

И запустите его через меню макросов Excel, как предложено от "user3616725" из принятого ответа:

Вернувшись в Excel, перейдите в Инструменты>Макрос>Макросы и выберите макрос с именем «CopyCellContents», а затем выберите «Параметры» в диалоговом окне. Здесь вы можете назначить макросу комбинацию клавиш (например, Ctrl+c для обычного копирования) — я использовал Ctrl+q.

Затем, когда вы хотите скопировать одну ячейку в Блокнот/куда угодно, просто нажмите Ctrl+q (или что вы выбрали), а затем нажмите Ctrl+v или Edit>Paste в выбранном месте.


Редактировать (21 ноября 2015 г.):
@ комментарий от "dotctor":
Нет, это серьезно не новый вопрос! На мой взгляд, это хорошее дополнение к принятому ответу, поскольку мой ответ касается проблем, с которыми вы можете столкнуться при использовании кода из принятого ответа. Если бы у меня было больше репутации, я бы создал комментарий.
@ комментарий от "Teepeemm":
Да, вы правы, ответы, начинающиеся с заголовка "Проблема:", вводят в заблуждение. Изменено на: «Возможная проблема с ответом от «user3616725»:». В качестве комментария я бы, конечно, написал намного компактнее.

Когда вы создаете многострочную строку в ячейке Excel (с помощью Alt-Enter), если вы копируете эту ячейку в текстовый редактор, Excel автоматически добавит двойные кавычки (") вокруг всей строки, например:< /p>

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

Как указать Excel не добавлять кавычки вокруг многострочного текста при копировании из Excel?

Редактировать: текстовые редакторы, которые я пробовал, отображают это поведение:

  • MS Word
  • Вордпад
  • Блокнот
  • Блокнот++
  • Студия SQL Server

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

Что бы это ни стоило, это потому, что Excel пытается вывести действительный CSV. Я был бы удивлен, если бы это было легко изменить.

@slhck Я надеюсь, вы ошибаетесь (хороший ответ, хотя!), так как было бы очень полезно иметь возможность сообщить Excel, что я не копирую в csv.

Это очень раздражает. Нет законной причины, по которой Excel заключает в кавычки текст, содержащий возврат каретки.

Таблицы Google делают то же самое. Я пытаюсь скопировать несколько ячеек данных в текстовый файл, но таблицы Google добавляют к данным кавычки - кавычек НЕТ в исходных данных. Для меня это ошибка, а не функция.

20 ответов 20

Как ваш текст будет скопирован в Word, зависит от выбранного параметра форматирования. В Word 2010 параметр формата по умолчанию — Формат HTML. Существует четыре основных варианта того, как скопировать текст в Word.( форматированный текст (RTF ), неформатированный текст , формат HTML и неформатированный текст Unicode )

При вставке форматированного текста в Word создаются мини-таблицы. (Синие контуры.)

Чтобы получить неформатированный текст в Word без двойных кавычек:

  1. Вставьте отформатированный текст, чтобы создать таблицу.
  2. Выберите таблицу и скопируйте ее.
  3. Перейдите к пустому месту и вставьте новую копию как неформатированный текст. ( Alt + E , S )

Это также работает для вставки результатов без кавычек в другой редактор. Просто измените шаг 3, чтобы вставить его в другой редактор.

Однако, вероятно, было бы быстрее просто вставить как обычно, а затем использовать Заменить, чтобы найти и удалить все двойные кавычки.

+1 хороший ответ с техникой решения! (к сожалению, для блока, с которым я имел дело, были допустимые двойные кавычки, которые я хотел сохранить)

+1 Эти глупости действительно заставляют меня искать другой продукт для офиса. Может быть, звездный офис или что-то в этом роде. спасибо за подсказку

Если вы скопируете диапазон из Excel (2010) в Word, вы получите нужный текст без кавычек. Затем вы можете снова скопировать его в место назначения, например, в блокнот. Excel->Word->Notepad даст вам нужные результаты.

Word действительно показывает такое поведение при копировании с другими ячейками (как описано в вопросе). Или это они отсортировали в Office 2010?

Пока это работает. Жаль, что мне приходится использовать Word 2010 в качестве посредника, чтобы удалить кавычки.

Использование Excel>Word>Блокнот Я обнаружил, что новые строки, которые я добавил в ячейки Excel, исчезли, когда я вставил из Word обратно в Блокнот, поэтому я вставляю в Блокнот, затем обратно в Word, затем заменяю последний символ в каждом строку (которая, к счастью, является тем же уникальным символом в моем тексте) с тем же символом ^ 13 ^ 10, а затем вставьте обратно в Блокнот! Если я не использую маршрут Word, то не только кавычки добавляются в конце строк, но и все двойные кавычки удваиваются (экранируются).

Я знаю, что сейчас 2018 год, и эти посты старше, но все же актуальны. Они помогли мне найти решение.

  1. Я поставил =A2, который смотрит на ячейку с символом Char в формуле.
  2. Затем я скопировал A2 и вставил значения в другую ячейку, например A3.
  3. Затем я выбрал A3, нажал F2 , Ctrl Shift Home , Ctrl C .
  4. Остановитесь, не вставляйте в другую ячейку Excel. оставьте его в буфере обмена и вставьте в блокнот.
  5. Невидимые кавычки исчезнут.

Исчезнуть, как сказал INXS, исчезнуть! :=)

Возможно, кто-то уже предложил это решение, поэтому приношу свои извинения, после прочтения всех примеров что-то запало мне в голову, и вы все помогли!

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

Вы можете обойти это, выделив ячейку, а затем скопировав и вставив код прямо из текстовой строки вверху, нажав на нее и выделив все вручную.

Я делал это только в Excel 2010, поэтому не знаю, будет ли это работать в более ранних версиях.

Это идеально, хотя мне пришлось взять ячейку, в которой была формула CONCAT(A1:A100), и Специальную вставку во вторую ячейку, прежде чем я смог выбрать все из текстового поля, как вы описали

Это ответ, который должен получить любовь! Просто, эффективно, не требует никаких других действий, кроме копирования из строки формул вместо самой ячейки. Спасибо, @Matt!

Самый простой способ, который я нашел, - это объединить ячейки, которые вы хотите разместить в нескольких строках, с чем-то "особым" между ними, а не с cr/lf. Тильда обычно работает хорошо для меня. Например, в столбце G:

В этом примере конечной целью является получение текстового файла со значениями из E1 в одной строке, затем F1 в новой строке, затем E2, F2 и т. д. Конечно, вы могли бы так же легко создать G1 из других значений, только что добавленный ~ для разрыва строки.

Затем получить многострочный текстовый файл в Notepad++

  • Вырезать и вставить в Notepad++
  • Ctrl-H, чтобы открыть диалоговое окно замены
  • Убедитесь, что выбран вариант "расширенный" поиск
  • Замените все ~ на \n (или \r\n, если хотите)

Это не проблема Excel. Как говорит предыдущий плакат, он просто выводит действительные данные CSV. Это будет зависеть от редактора, в который вы его поместите, чтобы позаботиться о его форматировании. Я бы предложил использовать что-то более умное, чем блокнот. Вы можете использовать MS Word в качестве промежуточного звена между Excel и любым текстовым редактором, который вы хотите использовать помимо Word.

Я пользуюсь чем-то другим, кроме блокнота. Кроме того, Word делает то же самое (вставляет только эту ячейку с помощью "s)

Я обнаружил это вчера. Я согласен с Эндрю Бикертоном. Я не хочу копировать CSV, я хочу копировать текст.Excel должен хотя бы спросить. Поскольку в моем тексте было около двух тысяч вставок SQL, я смог решить его более легко с помощью PsPad. Несмотря на то, что это было легко, в этом не было необходимости.

Вы можете сохранить документ Excel как веб-страницу, а затем скопировать текст с веб-страницы. Это хорошо работает для одного столбца данных, но убедитесь, что ширина столбца равна ширине текста, иначе будут добавлены разрывы строк.

Я тоже обнаружил эту проблему.

Установите принтер Generic / Text Only в Windows, выбрав печать в файл в качестве порта.

Распечатайте выбранный диапазон на этом принтере — созданный текстовый файл будет свободен от кавычек.

У меня была та же проблема, и я использовал следующие шаги (я использую Office 2007, но я думаю, что это работает и для более поздних версий):

  1. Выбрал диапазон ячеек, содержащий многострочный текст из Excel, который я хочу вставить в другой редактор, а затем нажмите "Копировать".
  2. В Word 2007 я вставил скопированный диапазон ячеек в виде таблицы.
  3. Выберите таблицу.
  4. На вкладке "Макет" выберите Select-Table.
  5. В разделе данных выберите «Преобразовать в текст» и выберите «Знаки абзаца».

В результате исходная таблица преобразуется в текст с символами новой строки в конце каждой строки и знаками абзаца в конце последней строки каждой ячейки.

Невозможно подготовить его для CSV-файла, потому что было бы довольно глупо быть настолько изощренным, чтобы начинать и заканчивать ячейки, содержащие непечатаемые символы, с кавычками, и не делать то же самое для ячеек, содержащих запятые ( чего нет).

В любом случае. Я столкнулся с этой проблемой, когда пытался создать адресные метки из имени, фамилии, адресной строки 1. поля как:

CHAR(13), за которым следует CHAR(10), является новым абзацем при просмотре текстового файла в шестнадцатеричном редакторе.

Мой способ обойти это раздражение заключается в следующем:

  • скопируйте и вставьте ячейки/столбец в Word.
  • Используйте раскрывающийся список символов буфера обмена (нижний левый угол страницы или вставленный текст), чтобы выбрать Сохранить только текст.
  • Выберите вставленный текст. Вы должны сделать это только в том случае, если документ содержит другие вещи, которые могут быть затронуты
  • Нажмите Ctrl + H, чтобы открыть диалоговое окно Найти и заменить.
  • В поле Найти введите: "^p" (все четыре символа).
    Возможно, вам придется перейти в "Инструменты" -> "Параметры автозамены", а затем на обеих вкладках "Автоформат" убедитесь, что это не меняет ваши прямые кавычки)
  • В поле Заменить на введите: ^p (2 символа)
  • Теперь нажмите кнопку Заменить все
  • .
  • Наконец, вам придется вручную удалить двойные кавычки в начале и конце импортированного блока.

Это основано на Office 2003, поэтому ваша версия Microsoft Word может немного отличаться.

У меня была такая же проблема, и я сделал это:

  1. Нажмите «Новый адрес электронной почты» в Outlook.
  2. Вставьте ( Ctrl + V ) в него то, что вы скопировали из Excel.
  3. Выберите все ( Ctrl + A ) и скопируйте все заново ( Ctrl + C ).
  4. Вставьте его в любое место.

Я использовал функцию CLEAN, и она у меня сработала.

Поместите ячейки, которые вы хотите скопировать, внутрь CLEAN , например:

Где A1 — это ячейка с данными, которые вы хотите скопировать в блокнот без кавычек.

Я думаю, вы имеете в виду ЧИСТЫЙ . (По крайней мере, в Excel 2010.) Однако это удалит символы перевода строки, и его второе предложение больше не будет многострочным.

Это должен быть ответ или, по крайней мере, заслуживает большего количества голосов. Никаких дополнительных инструментов не требуется. Простое изменение (перенос) формулы.

Я знаю, что это старая тема, но я решил использовать CLEAN, как было предложено, скопировать эти ячейки и вставить значения обратно на лист. Таким образом, я мог редактировать текст до конечного результата и копировать и вставлять ячейки в текстовый документ без кавычек.

Я думаю, что сначала сработает очистка текста, а затем окончательное форматирование (по крайней мере, так было у меня).

Обратите внимание: я считаю, что метод "Очистить" также удалит символы возврата каретки, и в результате прошедшее время не будет многострочным.

Была такая же проблема, в итоге решил ее очень легко. У меня было 600 строк длинных описаний продуктов. Чтобы решить эту проблему, я сделал следующее:

1) Выберите весь столбец и нажмите "Перенос текста".

2) Не снимая выделения со столбца, СНОВА нажмите "Перенос текста" (чтобы текст НЕ переносился на 100 %).

PRESTO - текст скопирован из каждой ячейки идеально, без кавычек (даже если это были длинные абзацы).

По умолчанию Excel добавляет кавычки к любому многострочному тексту.Таким образом, простое решение, обеспечиваемое описанным выше процессом, состоит в том, чтобы ваши ячейки с длинным текстом не переносились автоматически на несколько строк.

Возможно, стоит отметить, что до того, как я это сделал, ячейки выглядели нормально и НЕ казались обернутыми. Я думаю, что описанный выше процесс «говорит» Excel НЕ интерпретировать любую ячейку как «многострочный» текст, даже если это длинный абзац, тем самым решая проблему «Excel добавляет кавычки к скопированному тексту».

Привет, не совсем правильное решение. Это работает только в том случае, если в ваших ячейках нет внутренних возвратов каретки (нажмите alt-enter, чтобы создать внутренний возврат каретки)

Я нашел для этого простой способ. Установите OpenOffice Calc и откройте файл .xlsx. Затем просто скопируйте содержимое ячейки и вставьте в любой текстовый редактор. Раздражающие начальные и конечные кавычки не будут отображаться.

У меня была такая же проблема, и ни одно из решений этого поста не помогло мне. Затем я поделюсь решением, которое определенно сработало для меня, на случай, если другие могут оказаться в такой же ситуации.

Во-первых, это решение также соответствует одной ошибке, о которой недавно сообщила Microsoft, из-за которой содержимое буфера обмена преобразовывалось в нечитаемое содержимое после любой модификации с помощью VBA, когда пользователь обращался к любой «папке быстрого доступа» с помощью проводника.< /p>

Вам нужно создать макрос, как показано ниже, и назначить ему сочетание клавиш "ctrl+c". (Назначение горячих клавиш = вкладка «Разработчик», «Макросы», нажмите макрос, параметры, затем поставьте букву «c» в поле горячих клавиш).

Это все равно потребуется для создания функций "SetClipboard" и "GetClipboard".

Ниже мы приводим определение функций SetClipboard и GetClipboard с некоторыми изменениями для разных версий Excel. (Поместите приведенный ниже код в модуль)

Надеюсь, это поможет другим так же, как помогло мне.

На днях я наткнулся на ту же старую проблему почти через десять лет после того, как эта тема была начата. Предлагаемые здесь решения требовали дополнительных шагов, добавляя сложности, которых я хотел избежать. Поэтому я нашел альтернативный способ, который сработал для меня.

Мне нужно было обработать некоторые данные в Excel и вывести несколько числовых значений, интегрированных в код XML.

Моя основная идея

Обработанные данные (упрощенные)

Желаемый результат (упрощенный)

Изначально я пытался сгенерировать вывод в виде многострочного текста в одной ячейке с помощью CHAR(10). Текст, скопированный в мой XML-файл, выглядел так

Тогда я понял, что мне просто нужно создавать каждую строку кода в отдельной ячейке и копировать строки.

Это решило проблему для меня.

Если подумать, зачем создавать многострочный текст в одной ячейке, если вы собираетесь вставить его в какое-то другое программное обеспечение? Если по какой-либо причине вам также необходимо иметь его в одной ячейке в Excel, вы можете просто создать текст в нескольких ячейках на другом листе и объединить его на своем листе, используя CHAR (10) или CHAR (13).

Моя актуальная проблема

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

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

Но вывод, вставленный в другое программное обеспечение, был менее чем желательным:

Другой подход состоял в том, чтобы использовать формулу для coor_x в четных строках и другую формулу для coor_y в нечетных строках. Но тогда я потерял бы возможность перетаскивать формулы вниз на столько строк, сколько мне нужно. Мне пришлось бы много раз копировать и вставлять эту пару формул ниже и перенастраивать неправильные ссылки на ячейки, хранящие координаты.

Наконец, когда я обнаружил, что моя версия Excel поддерживает динамические массивы, я понял, как это сделать правильно. (Я считаю, что он также должен работать в старых версиях Excel с использованием именованных диапазонов.)

Я сгенерировал все строки для coor_x в одном столбце, затем сгенерировал все строки для coor_y в другом столбце, а затем использовал модифицированную версию формулы для суммирования данных из два столбца в один столбец:

Креативное использование динамических массивов позволяет даже избавиться от необходимости настраивать области массива вручную при добавлении дополнительных пар координат.

Проблема
Когда я копирую содержимое листа Excel во внешнюю программу (например, notepad++), двойные кавычки добавляются автоматически во все данные ячейки. Эта проблема возникает только при копировании многострочного содержимого в ячейке.

Решение
Эту проблему можно решить, связав скрипт Visual Basic (макросы) с файлом Excel

<р>1. Откройте работу Excel, из которой вы хотите скопировать содержимое

<р>2. Откройте Visual Basic for Application, нажав Alt+F11

<р>3. На левой вкладке вы можете выбрать, где вы хотите применить сценарий VB.
Если вы хотите добавить сценарий только на один лист Excel, откройте имя нужного листа. Если вы хотите, чтобы этот скрипт отображался на всем листе, откройте ThisWorkbook

.

<р>4. Вставьте следующий код в открывшееся окно

Явный вариант

Private Declare Function OpenClipboard Lib "user32.dll" ( _
ByVal hwnd As Long) As Long
Private Declare Function CloseClipboard Lib "user32.dll" () As Long
Private Declare Функция EmptyClipboard Lib "user32.dll" () As Long
Private Declare Function SetClipboardData Lib "user32.dll" ( _
ByVal wFormat As Long, _
ByVal hMem As Long) As Long< br />Частная функция объявления GlobalAlloc Lib "kernel32.dll" ( _
ByVal wFlags As Long, _
ByVal dwBytes As Long) As Long
Частная функция объявления GlobalLock Lib "kernel32.dll" ( _
ByVal hMem As Long) As Long
Частная функция объявления GlobalUnlock Lib "kernel32.dll" ( _
ByVal hMem As Long) As Long
Частная функция объявления GlobalFree Lib " kernel32.dll" ( _
ByVal hMem As Long) As Long
Частная функция объявления lstrcpy Lib "kernel32.dll" ( _
ByVal lpStr1 As Any, _
ByVal lpStr2 As Любой) До тех пор, пока

Частная константа CF_TEXT As Long = 1&

Частная константа GMEM_MOVEABLE As Long = 2

Sub CopyContent()
Вызов StringToClipboard(ActiveCell.Value)
End Sub

Private Sub StringToClipboard(strText As String)
Dim lngIdentifier As Long, lngPointer As Long
lngIdentifier = GlobalAlloc(GMEM_MOVEABLE, Len(strText) + 1)
lngPointer = GlobalLock(lngIdentifier)
Вызов lstrcpy(ByVal lngPointer, strText)
Вызов GlobalUnlock(lngIdentifier) ​​
Вызов OpenClipboard(0&)
Вызов EmptyClipboard
Вызов SetClipboardData(CF_TEXT, lngIdentifier) ​​
>Вызов CloseClipboard
Вызов GlobalFree(lngIdentifier)
End Sub

<р>5. Сохраните сценарий VBA

<р>7. Выберите сохраненные макросы и нажмите «Параметры».
Добавьте сочетание клавиш для макроса (например, добавьте Ctrl + q). Затем закройте макрос

<р>8. Теперь выберите контент, который вы хотите скопировать. Нажмите Ctrl+q для копирования. Теперь вы можете успешно вставлять содержимое без надоедливой проблемы с двойными кавычками.

Решение для резервного копирования
Если вам не нужно регулярно копировать данные из Excel, вот простое решение для вас. Сначала скопируйте и вставьте содержимое из Excel в документ Word (используйте Ctrl+V для вставки или используйте форматирование слиянием в параметрах вставки). Затем вы можете скопировать и вставить то же самое из документа Word в другую программу (notepad++). Оно будет отображаться без кавычек.

У меня есть ячейки, в которых есть символы новой строки. У меня есть несколько таких ячеек в столбце, который я копирую, но это также влияет на одну ячейку, поэтому я поработаю над этим примером в этом посте.

Вот пример ячейки

При копировании непосредственно из Excel в notepad++ или большинство других программ он отображается как

Есть ли способ избавиться от этих автоматических кавычек, сохранив при этом символ новой строки?

Мой элементарный обходной путь заключается в том, чтобы вставить его в notepad++ и заменить " пробелом или сначала вставить его в слово, а затем скопировать из слова.

Редактировать: у меня была эта проблема в Office 2010, и я недавно перешел на Office 365. Это также существует в Google Sheets.

/u/b_ootay_ful — Ваше сообщение было успешно отправлено.

Пожалуйста, прочтите эти напоминания и при необходимости отредактируйте сообщение, чтобы исправить его:

Следуйте правилам отправки, особенно 1 и 2. Чтобы исправить текст, нажмите «Изменить». Чтобы исправить заголовок, удалите его и разместите повторно.

После того, как ваша проблема будет решена, ответьте на один или несколько ответов с пометкой "Решение проверено", чтобы закрыть цепочку.

Несоблюдение этих шагов может привести к удалению вашего сообщения без предупреждения.

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

К сожалению, это поведение по умолчанию.

Единственное место, куда вы сможете вставить подобные вещи (без использования обертки с двойными кавычками) — это вставить в другое приложение Office (например, в Word).

Но это сопряжено со своими собственными проблемами, потому что, хотя он не затрагивает обертку кавычек, он затрагивает форматирование; включая ячейки, которые превращаются в ячейки таблицы Word.

И если у вас есть столбец в Excel, слишком узкий (недостаточно широкий), чтобы отображать полные предложения в точках останова возврата каретки, то точки останова новой строки при вставке в слово будут отображаться включить дополнительные символы возврата каретки в зависимости от того, как они физически выглядят в ячейках в Excel.

Способ исправить это — сделать столбец достаточно широким, чтобы все символы/слова/предложения поместились в ячейке, чтобы единственный «обтекатель», который происходит, находился там, где фактический возврат каретки. Либо так, либо полностью отключите перенос текста в ячейках/столбцах перед копированием.

Но вы не избавитесь от обертки цитаты, если вставите ее в любую другую систему.

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

Читайте также: