Excel копирует с кавычками

 

roster

Пользователь

Сообщений: 15
Регистрация: 26.05.2013

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

 

Igor67

Пользователь

Сообщений: 3726
Регистрация: 21.12.2012

#2

26.05.2013 20:38:45

Цитата
добавляются кавычки

покажите, что это такое?

 

roster

Пользователь

Сообщений: 15
Регистрация: 26.05.2013

Есть формула следующего содержания:
=ЕСЛИ(ЕПУСТО(G63)=ИСТИНА;»»;»Акция! «)&»Артикул » &B63 &» » &C63 &» » &ЕСЛИ(ЕПУСТО(G63)=ИСТИНА;»«&F63&»«;»[strike]»&F63&»[/strike] «&»«&G63&»«)&ЕСЛИ(ЕПУСТО(G63)=ИСТИНА; « ք.«;» ք.«)&»» &СИМВОЛ(10) &K63 &СИМВОЛ(10) &E63 &СИМВОЛ(10) &ЕСЛИ(ЕПУСТО(D63)=ИСТИНА;»»;»Доставка: 1-3 дня«) &СИМВОЛ(10)

и результат:
Артикул  Козырек для купания   ք.

Если ячейку копирую (таких ячеек сотни в столбце), и вставляю в блокнот, получается следующее:

«Артикул  Козырек для купания   ք.

«

 

Юрий М

Модератор

Сообщений: 60570
Регистрация: 14.09.2012

Контакты см. в профиле

Скопировал в Блокнот из своей формулы — кавычек нет.

 

roster

Пользователь

Сообщений: 15
Регистрация: 26.05.2013

Возможно, зависит от знаков в формуле.
Наткнулся на решение проблемы, попробвал через блокнот, не помогает:

http://forum.ixbt.com/topic.cgi?id=23:36871

Изменено: roster27.05.2013 20:29:38

 

Nic70y

Пользователь

Сообщений: 3289
Регистрация: 22.12.2012

Win7 MSO 2013

Из Excel в Word, затем в блокнот — получилось.
Зы: зачем в формуле =ИСТИНА и &»»&?

 

roster

Пользователь

Сообщений: 15
Регистрация: 26.05.2013

#7

27.05.2013 06:11:24

Спасибо! Через Word получилось  :)

Цитата
ачем в формуле =ИСТИНА и &»»&?

Нужно отображать: если не пустая ячейка со спецценой, то отображать слово «Акция». Такой вариант придумался сам  :)

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

Отображать — задача формулы. Вопрос о другом: зачем в формуле лишние элементы?

ЕСЛИ() сама разберется, где правда:
=ЕСЛИ(ЕПУСТО(G63);»»;»Акция! «)

Не вижу смысла в пустоте:

«»&F63&»»

F63

Что в лоб, что по лбу:
ЕСЛИ(ЕПУСТО(G63)=ИСТИНА; » р.»;» р.»)

Для чего в конце перенос строки? (СИМВОЛ(10))

=ЕСЛИ(ЕПУСТО(G63);»»;»Акция! «)&»Артикул » &B63&» «&C63 &»  «&ЕСЛИ(ЕПУСТО(G63);F63;»[strike]»&F63&»[/strike]»&G63)&СИМВОЛ(10)&K63&СИМВОЛ(10)&E63&СИМВОЛ(10)&ЕСЛИ(ЕПУСТО(D63);»»;»Доставка: 1-3 дня»)

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

Похоже, кавычки появляются из-за наличия лишних пустых строк и переносов.
Попробуйте вставить СТРОКА(10) в тело ЕСЛИ():

=ЕСЛИ(условие;a;»»)  &СТРОКА(10)

=ЕСЛИ(условие;a&СТРОКА(10);»»)  
Если бы приложили пример, помощь была бы качественнее.

Поправка:
в этом сообщении СТРОКА написано ошибочно, читать
СИМВОЛ

 

Михаил С.

Пользователь

Сообщений: 10514
Регистрация: 21.12.2012

#10

27.05.2013 10:16:04

Цитата
vikttur пишет:
Попробуйте вставить  СТРОКА(10)  

СТРОКА(10) — это что такое?

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

Это то, что в формуле называется СИМВОЛ :)
Опечатка. Виноват, исправлюсь.

 

roster

Пользователь

Сообщений: 15
Регистрация: 26.05.2013

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

Прикрепленные файлы

  • forum.xlsx (13.75 КБ)

Изменено: roster27.05.2013 20:20:38

 

Nic70y

Пользователь

Сообщений: 3289
Регистрация: 22.12.2012

Win7 MSO 2013

;)

Прикрепленные файлы

  • 800.xlsx (14.37 КБ)

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

Интересно, тэги в формуле срабатывают? Зачем они там?

 

roster

Пользователь

Сообщений: 15
Регистрация: 26.05.2013

#15

27.05.2013 21:14:52

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

Nic70y, удачно! Я понял теперь о чем речь шла!
Спасибо!

I was with the same problem and none of the solutions of this post helped me.
Then I’ll share the solution which definitely worked well for me, in case others may be in the same situation.

First, this solution also complies with one bug recently reported to Microsoft, which was causing the clipboard content to be transformed into unreadable content, after any modification using VBA when the user accessed any «Quick Acces Folder» using file explorer.

Documentation for the solution of the copy past bug, which the code will be used in this answer, to remove the quotes from clipboard: https://learn.microsoft.com/en-us/office/vba/access/Concepts/Windows-API/send-information-to-the-clipboard

You’ll need to build a macro as below, and assign the «ctrl+c» as a hotkey to it. (Hotkey assignment = Developer tab, Macros, click the macro, options, then put the letter «c» in the hotkey field).

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

This will still need for you to build the functions «SetClipboard» and «GetClipboard».

Below we have the definition of the «SetClipboard» and «GetClipboard» functions, with a few adjustments to fit different excel versions. (Put the below code in a module)

    Option Explicit
#If VBA7 Then
    Private Declare PtrSafe Function OpenClipboard Lib "User32" (ByVal hWnd As LongPtr) As LongPtr
    Private Declare PtrSafe Function EmptyClipboard Lib "User32" () As LongPtr
    Private Declare PtrSafe Function CloseClipboard Lib "User32" () As LongPtr
    Private Declare PtrSafe Function IsClipboardFormatAvailable Lib "User32" (ByVal wFormat As LongPtr) As LongPtr
    Private Declare PtrSafe Function GetClipboardData Lib "User32" (ByVal wFormat As LongPtr) As LongPtr
    Private Declare PtrSafe Function SetClipboardData Lib "User32" (ByVal wFormat As LongPtr, ByVal hMem As LongPtr) As LongPtr
    Private Declare PtrSafe Function GlobalAlloc Lib "kernel32.dll" (ByVal wFlags As Long, ByVal dwBytes As Long) As LongPtr
    Private Declare PtrSafe Function GlobalLock Lib "kernel32.dll" (ByVal hMem As LongPtr) As LongPtr
    Private Declare PtrSafe Function GlobalUnlock Lib "kernel32.dll" (ByVal hMem As LongPtr) As LongPtr
    Private Declare PtrSafe Function GlobalSize Lib "kernel32" (ByVal hMem As LongPtr) As Long
    Private Declare PtrSafe Function lstrcpy Lib "kernel32.dll" Alias "lstrcpyW" (ByVal lpString1 As Any, ByVal lpString2 As Any) As LongPtr
#Else
    Private Declare Function OpenClipboard Lib "user32.dll" (ByVal hWnd As Long) As Long
    Private Declare Function EmptyClipboard Lib "user32.dll" () As Long
    Private Declare Function CloseClipboard Lib "user32.dll" () As Long
    Private Declare Function IsClipboardFormatAvailable Lib "user32.dll" (ByVal wFormat As Long) As Long
    Private Declare Function GetClipboardData Lib "user32.dll" (ByVal wFormat As Long) As Long
    Private Declare Function SetClipboardData Lib "user32.dll" (ByVal wFormat As Long, ByVal hMem As Long) As Long
    Private Declare Function GlobalAlloc Lib "kernel32.dll" (ByVal wFlags As Long, ByVal dwBytes As Long) As Long
    Private Declare Function GlobalLock Lib "kernel32.dll" (ByVal hMem As Long) As Long
    Private Declare Function GlobalUnlock Lib "kernel32.dll" (ByVal hMem As Long) As Long
    Private Declare Function GlobalSize Lib "kernel32" (ByVal hMem As Long) As Long
    Private Declare Function lstrcpy Lib "kernel32.dll" Alias "lstrcpyW" (ByVal lpString1 As Long, ByVal lpString2 As Long) As Long
#End If

Public Sub SetClipboard(sUniText As String)
    #If VBA7 Then
        Dim iStrPtr As LongPtr
        Dim iLock As LongPtr
    #Else
        Dim iStrPtr As Long
        Dim iLock As Long
    #End If
    Dim iLen As Long
    Const GMEM_MOVEABLE As Long = &H2
    Const GMEM_ZEROINIT As Long = &H40
    Const CF_UNICODETEXT As Long = &HD
    OpenClipboard 0&
    EmptyClipboard
    iLen = LenB(sUniText) + 2&
    iStrPtr = GlobalAlloc(GMEM_MOVEABLE Or GMEM_ZEROINIT, iLen)
    iLock = GlobalLock(iStrPtr)
    lstrcpy iLock, StrPtr(sUniText)
    GlobalUnlock iStrPtr
    SetClipboardData CF_UNICODETEXT, iStrPtr
    CloseClipboard
End Sub

Public Function GetClipboard() As String
#If VBA7 Then
    Dim iStrPtr As LongPtr
    Dim iLock As LongPtr
#Else
    Dim iStrPtr As Long
    Dim iLock As Long
#End If
    Dim iLen As Long
    Dim sUniText As String
    Const CF_UNICODETEXT As Long = 13&
    OpenClipboard 0&
    If IsClipboardFormatAvailable(CF_UNICODETEXT) Then
        iStrPtr = GetClipboardData(CF_UNICODETEXT)
        If iStrPtr Then
            iLock = GlobalLock(iStrPtr)
            iLen = GlobalSize(iStrPtr)
            sUniText = String$(iLen  2& - 1&, vbNullChar)
            lstrcpy StrPtr(sUniText), iLock
            GlobalUnlock iStrPtr
        End If
        GetClipboard = sUniText
    End If
    CloseClipboard
End Function

I hope it may help others as well as it helped me.

NatalieRedFox_333


  • #1

Здравствуйте…! Не пойму откуда берутся кавычки….как их можно убрать?
«Just took zzzzzzzzzzzzzzzzzzz
Just took zzzzzzzzz»
к одной ячейке прибавляем другую через СИМВОЛ(10)

формула в ячейке…

1646334748011.png

  • Untitled.jpg

    Untitled.jpg

    29 КБ

    · Просм.: 103

  • Untitled.jpg

    Untitled.jpg

    36.8 КБ

    · Просм.: 94

Последнее редактирование: 03.03.2022

NatalieRedFox_333


  • #2

если ячейку скопировать и вставить в блокнот то текст будет с кавычками…)))
«Just took zzzzzzzzzzzzzzzzzzz
Just took zzzzzzzzz»
а они мне совсем не нужны…)))

1646335006855.png

1646334975299.png

Последнее редактирование: 03.03.2022

NatalieRedFox_333


  • #3

мне надо соеденить две ячейки A & B причем так чтоб текст из ячейки B начинался строго с новой строки…)))
новая строка это — СИМВОЛ(10)
но почему то появляются еще и кавычки…

  • #4

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

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


  • #5

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

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 попробовать, либо перенос строки делать условным обозначением, а в блокноте делать замену.

ну убрать конечно не проблемма если одна ячейка или 2…))) даже 5 можно…. 'otbline' а если +100500….?

  • #6

Я же не знаю ваш workflow, пути примерно обозначил. Дальше уже выбираете более удобный вариант костылей.

NatalieRedFox_333


  • #7

Я же не знаю ваш workflow, пути примерно обозначил. Дальше уже выбираете более удобный вариант костылей.

кавычек нет в самой ячейке… они появляются при копировании текста и его вставке в блокнот или другой документ…

NatalieRedFox_333


  • #8

а еще эти кавычки появляются только когда в формуле есть — СИМВОЛ(10)

Jeine

Jeine

Да здравствует разум! Да сгинет маразм!


  • #9

Вместо вот этой конструкции, которая выделена красным

Без имени-6.jpg

попробуй использовать дважды (у тебя же там два пробела?) вот такую штуку

СИМВОЛ(32)

Последнее редактирование: 04.03.2022

NatalieRedFox_333


  • #10

Вместо вот этой конструкции, которая выделена красным
Посмотреть вложение 150551
попробуй использовать дважды (у тебя же там два пробела?) вот такую штуку

СИМВОЛ(32)

дело не в пробеле а именно в этом СИМВОЛ(10). те без него все Ok!
но как только он появляется в формуле сразу откуда то берутся кавычки…
а пробел я так просто поставила для кучи…он на кавычки никак не влияет)))

Последнее редактирование: 04.03.2022

NatalieRedFox_333


  • #11

скопировано из блокнота
«попробуй использовать дважды
вот такую штуку»

скопировано из Excel

попробуй использовать дважды
вот такую штуку

1646349818480.png

  • New Лист Microsoft Office Excel.zip

    7.3 КБ

    · Просм.: 107

  • Untitled.jpg

    Untitled.jpg

    53.7 КБ

    · Просм.: 100

Последнее редактирование: 04.03.2022

suntory


  • #12

Заключая всё значение ячейки в кавычки при копировании, Excel дает понять, что внутри ячейки имеются непечатаемые символы такие как:
знак табуляции СИМВОЛ(9), перенос строки СИМВОЛ(10), СИМВОЛ(13), неразрывный пробел СИМВОЛ(160) и т.д.

Ведь Excel использует(добавляет) эти символы(9, 10, 13) для правильного отображения колонок/строк при копировании диапазона и даже отдельной ячейки.

  • #13

кавычек нет в самой ячейке… они появляются при копировании текста и его вставке в блокнот или другой документ…

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

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 (с помощью 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 без двойных кавычек:

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

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

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

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

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

для разрывов строк.

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

  • Вырезать и вставить в Блокнот ++
  • Ctrl-H, чтобы открыть диалог замены
  • Убедитесь, что выбран вариант расширенного поиска
  • Замените все

на n (или r n, если хотите)

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

Тем не мение. Я столкнулся с этой проблемой, когда пытался создать метки адресов из полей Имя, Фамилия, Адресная строка 1 . как:

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

Мой способ обойти это раздражение:

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

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

Источник

Оставлять кавычки при копировании из ячейки

Проблема :
При копировании ячейки из 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:WindowsSystem32FM20.dll (32 бит Windows) (спасибо @JWhy)
  • нажав «Обзор» и выбрав C:WindowsSysWOW64FM20.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 »:». В качестве комментария я бы, конечно, написал намного компактнее.

Источник

Adblock
detector

СИМВОЛ(10) копирование в текст создает ковычки

GAS1979

Дата: Четверг, 31.05.2018, 17:53 |
Сообщение № 1

Группа: Пользователи

Ранг: Новичок

Сообщений: 24


Репутация:

0

±

Замечаний:
20% ±


Excel 2016

В экселе а ячейке написано

Код

=B3&СИМВОЛ(34)&B4&СИМВОЛ(34)&СИМВОЛ(10)&B5&СИМВОЛ(34)&B6&СИМВОЛ(34)

Я копирую эту ячейку в текстовый файл, и он создает лишние кавычки

Если же я формулу напишу без СИМВОЛ(10) то кавычки не вставляются, но мне нужен перенос строки

Внешние ссылки удалены администрацией — это нарушение п.3 Правил форума

К сообщению приложен файл:

__10.xlsx
(8.5 Kb)

Сообщение отредактировал GAS1979Пятница, 01.06.2018, 10:15

 

Ответить

InExSu

Дата: Четверг, 31.05.2018, 23:37 |
Сообщение № 2

Группа: Друзья

Ранг: Ветеран

Сообщений: 646


Репутация:

96

±

Замечаний:
0% ±


Excel 2010

Привет!
Копируйте две ячейки. Во вложении.


Разработчик Битрикс24 php, Google Apps Script, VBA Excel

 

Ответить

GAS1979

Дата: Пятница, 01.06.2018, 09:32 |
Сообщение № 3

Группа: Пользователи

Ранг: Новичок

Сообщений: 24


Репутация:

0

±

Замечаний:
20% ±


Excel 2016

Копируйте две ячейки. Во вложении.

Это не выход. Результат у меня должен быть в одной ячейке.

 

Ответить

InExSu

Дата: Пятница, 01.06.2018, 10:17 |
Сообщение № 4

Группа: Друзья

Ранг: Ветеран

Сообщений: 646


Репутация:

96

±

Замечаний:
0% ±


Excel 2010

Привет!

Результат у меня должен быть в одной ячейке

Пусть результат будет где Вам нужно, а копируйте из другого места.


Разработчик Битрикс24 php, Google Apps Script, VBA Excel

 

Ответить

GAS1979

Дата: Пятница, 01.06.2018, 10:47 |
Сообщение № 5

Группа: Пользователи

Ранг: Новичок

Сообщений: 24


Репутация:

0

±

Замечаний:
20% ±


Excel 2016

Пусть результат будет где Вам нужно, а копируйте из другого места.

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

К сообщению приложен файл:

_10.xlsx
(11.3 Kb)

 

Ответить

StoTisteg

Дата: Пятница, 01.06.2018, 10:57 |
Сообщение № 6

Группа: Авторы

Ранг: Старожил

Сообщений: 1161


Репутация:

103

±

Замечаний:
0% ±


Excel 2010

Попробуйте всё скопировать на другой лист, через спецвставку вставить значения, а оттуда уже в Notepad++


Интуитивно понятный код — это когда интуитивно понятно, что это код.

 

Ответить

GAS1979

Дата: Пятница, 01.06.2018, 11:01 |
Сообщение № 7

Группа: Пользователи

Ранг: Новичок

Сообщений: 24


Репутация:

0

±

Замечаний:
20% ±


Excel 2016

Попробуйте всё скопировать на другой лист, через спецвставку вставить значения, а оттуда уже в Notepad++

Результат такой же

Сообщение отредактировал GAS1979Пятница, 01.06.2018, 11:02

 

Ответить

_Boroda_

Дата: Пятница, 01.06.2018, 11:04 |
Сообщение № 8

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

Замечаний:
0% ±


2003; 2007; 2010; 2013 RUS

У меня получилось так:
1. Скопировать в Excel
2. Вствить в Ворд
3. Скопировать в Ворде (нажать Контрл+А, Контрл+С)
4. Вставить в текстовик


Скажи мне, кудесник, любимец ба’гов…
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

 

Ответить

StoTisteg

Дата: Пятница, 01.06.2018, 11:05 |
Сообщение № 9

Группа: Авторы

Ранг: Старожил

Сообщений: 1161


Репутация:

103

±

Замечаний:
0% ±


Excel 2010


Попробовал, то же самое. Ну и уберите их заменой, что мешает-то? Замен всего две:
1) «» -> «
2) rn» -> rn
Вторую операцию проделываем в режиме поиска Расширенный, если перенос строки перед кавычками тоже лишний, то 2) rn» -> (пусто)
[p.s.]UPD: Кавычки в начале строк какие-то странные, их надо копипастом в окно замены вставлять.


Интуитивно понятный код — это когда интуитивно понятно, что это код.

Сообщение отредактировал StoTistegПятница, 01.06.2018, 11:13

 

Ответить

InExSu

Дата: Пятница, 01.06.2018, 11:07 |
Сообщение № 10

Группа: Друзья

Ранг: Ветеран

Сообщений: 646


Репутация:

96

±

Замечаний:
0% ±


Excel 2010

Копирует в буфер без лишних кавычек:
[vba]

Код

Sub Copy2ClipBoard(txt$)    ‘ запись в буфер обмена
‘ Если не работает: или подключите библиотеку  Microsoft Forms 2.0 Object Library или вставьте в проект пустую форму.
    With GetObject(«New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}»)
        .SetText txt$
        .PutInClipboard
    End With
End Sub

[/vba]


Разработчик Битрикс24 php, Google Apps Script, VBA Excel

 

Ответить

StoTisteg

Дата: Пятница, 01.06.2018, 11:07 |
Сообщение № 11

Группа: Авторы

Ранг: Старожил

Сообщений: 1161


Репутация:

103

±

Замечаний:
0% ±


Excel 2010

_Boroda_, а зачем столько лишних телодвижений, если на скриншоте ясно виден поддерживающий ренгэкспы Notepad++?


Интуитивно понятный код — это когда интуитивно понятно, что это код.

 

Ответить

GAS1979

Дата: Пятница, 01.06.2018, 11:13 |
Сообщение № 12

Группа: Пользователи

Ранг: Новичок

Сообщений: 24


Репутация:

0

±

Замечаний:
20% ±


Excel 2016

У меня получилось так:
1. Скопировать в Excel
2. Вствить в Ворд
3. Скопировать в Ворде (нажать Контрл+А, Контрл+С)
4. Вставить в текстовик

Этот способ помог. Спасибо.
Но вот почему это происходит, не понятно.

 

Ответить

boa

Дата: Пятница, 01.06.2018, 12:26 |
Сообщение № 13

Группа: Друзья

Ранг: Ветеран

Сообщений: 543


Репутация:

166

±

Замечаний:
0% ±


2013, 365

GAS1979,
Заключая всё значение ячейки в кавычки при копировании, Excel дает понять, что внутри ячейки имеются непечатаемые символы такие как:
знак табуляции СИМВОЛ(9), перенос строки СИМВОЛ(10), СИМВОЛ(13), неразрывный пробел СИМВОЛ(160) и т.д.

Ведь Excel использует(добавляет) эти символы(9, 10, 13) для правильного отображения колонок/строк при копировании диапазона и даже отдельной ячейки.


 

Ответить

Понравилась статья? Поделить с друзьями:

А вот еще интересные статьи:

  • Excel кредит в банке
  • Excel копирует не все ячейки
  • Excel красить ячейку по условию
  • Excel копирует не все строки
  • Excel который не переводит числа в даты

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии