roster Пользователь Сообщений: 15 |
После расчета формулы, при копировании данных из такой ячейки добавляются кавычки. |
Igor67 Пользователь Сообщений: 3726 |
#2 26.05.2013 20:38:45
покажите, что это такое? |
||
roster Пользователь Сообщений: 15 |
Есть формула следующего содержания: и результат: Если ячейку копирую (таких ячеек сотни в столбце), и вставляю в блокнот, получается следующее: «Артикул Козырек для купания ք. « |
Юрий М Модератор Сообщений: 60570 Контакты см. в профиле |
Скопировал в Блокнот из своей формулы — кавычек нет. |
roster Пользователь Сообщений: 15 |
Возможно, зависит от знаков в формуле. http://forum.ixbt.com/topic.cgi?id=23:36871 Изменено: roster — 27.05.2013 20:29:38 |
Nic70y Пользователь Сообщений: 3289 Win7 MSO 2013 |
Из Excel в Word, затем в блокнот — получилось. |
roster Пользователь Сообщений: 15 |
#7 27.05.2013 06:11:24 Спасибо! Через Word получилось
Нужно отображать: если не пустая ячейка со спецценой, то отображать слово «Акция». Такой вариант придумался сам |
||
vikttur Пользователь Сообщений: 47199 |
Отображать — задача формулы. Вопрос о другом: зачем в формуле лишние элементы? ЕСЛИ() сама разберется, где правда: Не вижу смысла в пустоте:
F63 Что в лоб, что по лбу: Для чего в конце перенос строки? (СИМВОЛ(10)) =ЕСЛИ(ЕПУСТО(G63);»»;»Акция! «)&»Артикул » &B63&» «&C63 &» «&ЕСЛИ(ЕПУСТО(G63);F63;»[strike]»&F63&»[/strike]»&G63)&СИМВОЛ(10)&K63&СИМВОЛ(10)&E63&СИМВОЛ(10)&ЕСЛИ(ЕПУСТО(D63);»»;»Доставка: 1-3 дня») |
vikttur Пользователь Сообщений: 47199 |
Похоже, кавычки появляются из-за наличия лишних пустых строк и переносов.
=ЕСЛИ(условие;a&СТРОКА(10);»») Поправка: |
Михаил С. Пользователь Сообщений: 10514 |
#10 27.05.2013 10:16:04
СТРОКА(10) — это что такое? |
||
vikttur Пользователь Сообщений: 47199 |
Это то, что в формуле называется СИМВОЛ |
roster Пользователь Сообщений: 15 |
Файл приложил. Прикрепленные файлы
Изменено: roster — 27.05.2013 20:20:38 |
Nic70y Пользователь Сообщений: 3289 Win7 MSO 2013 |
Прикрепленные файлы
|
vikttur Пользователь Сообщений: 47199 |
Интересно, тэги в формуле срабатывают? Зачем они там? |
roster Пользователь Сообщений: 15 |
#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.
-
#1
Здравствуйте…! Не пойму откуда берутся кавычки….как их можно убрать?
«Just took zzzzzzzzzzzzzzzzzzz
Just took zzzzzzzzz»
к одной ячейке прибавляем другую через СИМВОЛ(10)
формула в ячейке…
-
Untitled.jpg
29 КБ
· Просм.: 103
-
Untitled.jpg
36.8 КБ
· Просм.: 94
Последнее редактирование: 03.03.2022
-
#2
если ячейку скопировать и вставить в блокнот то текст будет с кавычками…)))
«Just took zzzzzzzzzzzzzzzzzzz
Just took zzzzzzzzz»
а они мне совсем не нужны…)))
Последнее редактирование: 03.03.2022
-
#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 попробовать, либо перенос строки делать условным обозначением, а в блокноте делать замену.
-
#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 можно…. а если +100500….?
-
#6
Я же не знаю ваш workflow, пути примерно обозначил. Дальше уже выбираете более удобный вариант костылей.
-
#7
Я же не знаю ваш workflow, пути примерно обозначил. Дальше уже выбираете более удобный вариант костылей.
кавычек нет в самой ячейке… они появляются при копировании текста и его вставке в блокнот или другой документ…
-
#8
а еще эти кавычки появляются только когда в формуле есть — СИМВОЛ(10)
Jeine
Да здравствует разум! Да сгинет маразм!
-
#9
Вместо вот этой конструкции, которая выделена красным
попробуй использовать дважды (у тебя же там два пробела?) вот такую штуку
СИМВОЛ(32)
Последнее редактирование: 04.03.2022
-
#10
Вместо вот этой конструкции, которая выделена красным
Посмотреть вложение 150551
попробуй использовать дважды (у тебя же там два пробела?) вот такую штуку
СИМВОЛ(32)
дело не в пробеле а именно в этом СИМВОЛ(10). те без него все Ok!
но как только он появляется в формуле сразу откуда то берутся кавычки…
а пробел я так просто поставила для кучи…он на кавычки никак не влияет)))
Последнее редактирование: 04.03.2022
-
#11
скопировано из блокнота
«попробуй использовать дважды
вот такую штуку»
скопировано из Excel
попробуй использовать дважды
вот такую штуку
-
New Лист Microsoft Office Excel.zip
7.3 КБ
· Просм.: 107
-
Untitled.jpg
53.7 КБ
· Просм.: 100
Последнее редактирование: 04.03.2022
-
#12
Заключая всё значение ячейки в кавычки при копировании, Excel дает понять, что внутри ячейки имеются непечатаемые символы такие как:
знак табуляции СИМВОЛ(9), перенос строки СИМВОЛ(10), СИМВОЛ(13), неразрывный пробел СИМВОЛ(160) и т.д.Ведь Excel использует(добавляет) эти символы(9, 10, 13) для правильного отображения колонок/строк при копировании диапазона и даже отдельной ячейки.
-
#13
кавычек нет в самой ячейке… они появляются при копировании текста и его вставке в блокнот или другой документ…
проблема то понятна, эксель так вписывается в стандарт.
А вот как избавляться от этого решать вам, либо макрос и копирование таких ячеек отдельным шорткатом или замена уже в целевом редакторе.
Либо пробуйте альтернативные опенсорсные решения, там вроде без кавычек копируется.
|
GAS1979, Ведь Excel использует(добавляет) эти символы(9, 10, 13) для правильного отображения колонок/строк при копировании диапазона и даже отдельной ячейки. GAS1979, Ведь Excel использует(добавляет) эти символы(9, 10, 13) для правильного отображения колонок/строк при копировании диапазона и даже отдельной ячейки. boa Сообщение GAS1979, Ведь Excel использует(добавляет) эти символы(9, 10, 13) для правильного отображения колонок/строк при копировании диапазона и даже отдельной ячейки. Автор — boa Источник Как скопировать многострочный текст из Excel без кавычек?Когда вы создаете многострочную строку в ячейке Excel (с помощью Alt-Enter), если вы копируете эту ячейку в текстовый редактор, Excel автоматически добавляет двойные кавычки («) вокруг полной строки, то есть: Когда вы копируете только столбец со значениями в текстовый редактор, мы получаем: Как я могу сказать Excel не добавлять цитату вокруг многострочного текста при копировании из Excel? Редактировать: текстовые редакторы, которые я пробовал, отображают это поведение:
Если у вас есть предложение по использованию определенного редактора (или одного из вышеперечисленных), скажите, пожалуйста, какой и как его использовать . 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 без двойных кавычек:
Это также работает, чтобы вставить результаты без кавычек в другой редактор. Просто измените шаг 3, чтобы вставить в другой редактор. Однако, вероятно, было бы быстрее просто вставить как обычно, а затем использовать Replace, чтобы найти и удалить все двойные кавычки. Самый простой способ, который я нашел, состоит в объединении ячеек, которые вы хотите разместить, в несколько строк с чем-то «особенным» между ними, а не с cr/lf. Тильда обычно хорошо работает для меня. Например, в столбце G: В этом примере конечная цель состоит в том, чтобы получить текстовый файл со значениями из E1 в одной строке, затем F1 в новой строке, затем E2, F2 и т.д. Конечно, вы могли бы так же легко построить G1 из других значения, только что включенные для разрывов строк. Затем получить многострочный текстовый файл в Notepad++
на n (или r n, если хотите) Это не может быть подготовкой к CSV-файлу, потому что они были бы довольно глупы, настолько сложны, как верхние и конечные ячейки, которые содержат непечатаемые символы с кавычками, и не делают то же самое для ячеек, которые содержат запятые (чего он не делает. «т). Тем не мение. Я столкнулся с этой проблемой, когда пытался создать метки адресов из полей Имя, Фамилия, Адресная строка 1 . как: CHAR(13) за которым следует CHAR(10) являющийся новым абзацем при просмотре текстового файла в шестнадцатеричном редакторе. Мой способ обойти это раздражение:
Это основано на Office 2003, поэтому ваша версия Microsoft Word может немного отличаться. Источник Оставлять кавычки при копировании из ячейки Проблема : Подробности : Вывод в ячейке (отформатированный как число) в 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 в списке литературы, вы можете попробовать
У меня только что возникла эта проблема, и упаковка каждой ячейки функцией CLEAN решила ее для меня. Это должно быть относительно легко сделать, выполнив =CLEAN( , выбрав свою ячейку, а затем автоматически заполнив остальную часть столбца. После того, как я это сделал, при вставке в Блокнот или любую другую программу больше не было повторяющихся кавычек. Сначала вставьте его в Word, затем вы можете вставить его в блокнот, и он появится без кавычек. Если вы хотите выделить несколько ячеек и скопировать их значения в буфер обмена без всех этих надоедливых кавычек, следующий код может оказаться полезным. Это усовершенствование кода, приведенного выше, от user3616725. Мое решение, когда я столкнулся с проблемой кавычек, заключалось в том, чтобы убрать возврат каретки с конца текста моих ячеек. Из-за этих возвратов каретки (вставленных внешней программой) Excel добавлял кавычки ко всей строке. Пожалуйста, используйте приведенную ниже формулу И вы получите то, что хотите 😉 «Если вы хотите выбрать несколько ячеек и скопировать их значения в буфер обмена без всех этих надоедливых кавычек» ( без ошибки в решении для нескольких ячеек Питера Смоллвуда) «следующий код может быть полезен». Это усовершенствование кода, приведенного выше, от Питера Смоллвуда (которое «является усовершенствованием кода, приведенного выше от пользователя user3616725»). Это исправляет следующие ошибки в решении Питера Смоллвуда:
ПРИМЕЧАНИЕ. Вы по-прежнему не сможете копировать символы, встроенные в ячейку, которые могут вызвать выход из целевого поля, в которое вы вставляете эту ячейку (например, вкладка или CR при вставке в окно редактирования таблицы доступа или SSMS). У меня была такая же проблема, и ни одно из решений этого сообщения мне не помогло. Затем я поделюсь решением, которое определенно сработало для меня, на случай, если другие могут оказаться в такой же ситуации. Во-первых, это решение также соответствует одной ошибке, недавно сообщенной Microsoft, которая приводила к преобразованию содержимого буфера обмена в нечитаемое содержимое после любой модификации с использованием VBA, когда пользователь обращался к любой «папке быстрого доступа» с помощью проводника файлов.
Вам нужно будет создать макрос, как показано ниже, и назначить ему «ctrl + c» в качестве горячей клавиши. (Назначение горячих клавиш = вкладка «Разработчик», «Макросы», щелкните макрос, параметры, затем введите букву «c» в поле горячих клавиш). Это все еще понадобится вам для создания функций «SetClipboard» и «GetClipboard». Ниже у нас есть определение функций «SetClipboard» и «GetClipboard» с некоторыми корректировками для разных версий Excel. (Поместите приведенный ниже код в модуль) Я надеюсь, что это может помочь другим так же, как помогло мне. Вы можете сделать это в макросе Excel через VBA, отправив результаты в файл: И если вы хотите получить имена файлов и содержимое в несколько файлов, вот небольшой фрагмент, который избегает двойных кавычек вокруг вывода. Также можно удалить эти двойные кавычки, поместив результат в функцию «Очистить». Вывод будет вставлен без двойных кавычек в другие программы, такие как Notepad ++.
Примечание. Причина появления кавычек заключается в том, что при перемещении данных из Excel в буфер обмена они полностью соответствуют стандартам CSV, которые включают значения кавычек, которые включают табуляции, новые строки и т. Д. (А символы двойных кавычек заменяются двумя символами двойных кавычек) Таким образом, другой подход, особенно как в случае OP, когда вкладки / новые строки связаны с формулой, заключается в использовании альтернативных символов для вкладок и жестких возвратов. Я использую ascii Unit Separator = char (31) для вкладок и ascii Record Separator = char (30) для новых строк. Тогда при вставке в текстовый редактор не будут задействованы дополнительные правила CSV, и вы сможете выполнить быстрый поиск и заменить их, чтобы снова преобразовать их. Если вкладки / новые строки встроены в данные, вы можете выполнить поиск и заменить в Excel, чтобы преобразовать их. Независимо от того, используете ли вы формулу или изменяете данные, ключ к выбору разделителей — никогда не использовать символы, которые могут быть в фактических данных. Вот почему я рекомендую символы ascii низкого уровня. Намного более простой способ: Возможная проблема в связи с ответом от «user3616725»: Подробности: Решение: Чтобы использовать его так же, как и в первом коде VBA, приведенном выше, измените Sub «Beispiel ()» с: И запустите его через меню макросов Excel, как это было предложено пользователем 3616725 из принятого ответа:
Затем, когда вы хотите скопировать одну ячейку в Блокнот / где угодно, просто нажмите Ctrl + q (или что угодно, что вы выбрали), а затем выполните Ctrl + v или Edit> Paste в выбранном вами месте назначения. Редактировать (21 ноября 2015 г.): Источник Adblock |
СИМВОЛ(10) копирование в текст создает ковычки |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |