Слияние с Excel. Как снять ограничение количества символов строке?
Здравствуйте.
Софт: Excel 2016, Word 2016.
При слиянии документа Word с листом Excel выявилось, что Word ограничивает количество символов в поле ссылки до 255. Т.е. если в Excel есть ячейки с количеством символов более 255, то при слиянии Word берет лишь первые 255 символов.
Код строки в Word: < MERGEFIELD ограничения_земельного_участка >.
Подскажите, пожалуйста, как можно обойти данное ограничение?
2 Ответ от vitalyy5 28.08.2018 18:47:46
Re: Слияние с Excel. Как снять ограничение количества символов строке?
В то же время, если сделать связь между теми же файлами Excel и Word, то ограничений по количеству символов я не увидел (делал связь текста в несколько тысяч символов).
Т.е. дело не в том, что Word не может принять более 255 символов строку, а в чем-то другом.
Может быть в коде должны быть другие ключи?
3 Ответ от vitalyy5 29.08.2018 13:57:12
Re: Слияние с Excel. Как снять ограничение количества символов строке?
Решение нашел.
Отписываюсь, может кому пригодится, коллеги.
Для Excel 2016: меню
4 Ответ от vitalyy5 29.08.2018 13:59:32
Re: Слияние с Excel. Как снять ограничение количества символов строке?
Последний пост почему-то не полностью прошел.
Повторяю его.
Решение нашел.
Отписываюсь, может кому пригодится, коллеги.
Для Excel 2016: меню «Файл» — Параметры — вкладка «Дополнительно» — раздел «Данные» — снять все ограничивающие галочки в этом разделе.
В Word 2016 ничего делать не нужно.
Все работает.
Сообщений [ 4 ]
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Похожие темы
- Ограничение количества символов в списке лиературы
- Ограничение количества символов в дополнительных свойствах документа
- Ограничение количества страниц в шаблоне word
- Ограничение на тип вводимых символов
- Ограничение поля Word
- Макрос для копирования определенного количества символов
- Макрос отображения общего количества символов
- Фиксирование количества вводимых символов (элемент управления)
Как снять ограничение на количество символов в ячейке excel
Доброго времени суток, Планетяне!
Выводил содержимое массива в ячейку через разделитель. Потом увидел, что вывелось не всё. Отладил код — ошибок нет. Выяснилось, что всё дело в программном ограничении Excel на максимальное количество символов в ячейке.
Есть ли возможность это ограничение обойти? И, если да, то какие «костыли»?
Имеется ввиду, чтобы в ячейке было больше символов, чем в ограничении.
Изменено: Jack Famous — 28.10.2017 02:56:31
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Пользователь
Сообщений: 47199 Регистрация: 15.09.2012
28.10.2017 03:28:18
В литровую банку налить 1,5 литра воды.
Пользователь
Сообщений: 14615 Регистрация: 15.09.2012
Профессиональная разработка приложений для MS Office
28.10.2017 10:37:46
| Цитата |
|---|
| Jack Famous написал: Есть ли возможность это ограничение обойти? |
Нет, конечно. Вы вот сможете в диск на 1Гб впихуть 2Гб? Здесь то же самое: ограничение связано с максимально допустимым размером байт для хранения данных одной ячейки.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы.
Пользователь
Сообщений: 2737 Регистрация: 21.12.2012
28.10.2017 11:45:16
Может, использовать Фигуры?
There is no knowledge that is not power
Пользователь
Сообщений: 11907 Регистрация: 22.12.2012
Excel 2016, 365
28.10.2017 13:41:13
Доброе время суток
Jack Famous, а какой в этом смысл — запихивать столько значений в одну ячейку?
Пользователь
Сообщений: 11696 Регистрация: 07.11.2014
OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome
29.10.2017 19:59:20
был за городом и не мог сразу ответить…
Спецы, спасибо большое вам за ответы (и шутки, как наглядные примеры ) я, в принципе, так и думал, что раз ограничение системное , то тут скорее всего «никак», однако мало-ли какие сюрпризы таит Excel)))
SuperCat, да — как вариант, конечно можно (не подумал про фигуры — интересная идея)
Андрей VG, доброго вечера!
Дело в том, что в прошлой своей теме, разбирался с помощью знатоков с массивами. Разобрался как выгрузить на лист с транспонированием и всё получилось.
Однако решил попробовать собрать всё в ячейку через разделитель. Так вот, собрал нормально, потом начинаю «разбивать» ячейку по разделителю вниз и понимаю, что записей куда меньше, чем должно быть. Причём таких ячеек было 3: полное описание объекта, только документ и только номер скана. И в каждую собирались данные по 600 объектам. Сканы все внеслись, документы почти все, а полного описания меньше половины — покопавшись немного, я ознакомился с этим системным ограничением))) полное описание занимает много текста по каждому объекту, документы много меньше, а номера сканов вообще 1-3 цифры.
Для меня удивительно было только то, что никакой ошибки не выскочило.
Разумеется, программу нужно использовать так, как она задумывалась использоваться и собирать такой огромный массив информации в 1 ячейку нет никакого смысла. Просто столкнулся с этим в первый раз и было интересно)))
Всем огромное спасибо!
Изменено: Jack Famous — 29.10.2017 20:00:49
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Excel: Ограничение ввода (часть 1)
Предположим, что Вам надо вводить в определенные ячейки значения строго ограниченного размера. Например, ИНН, который должен состоять из 10 символов.
Зачастую при торопливой работе в подобные данные закрадываются ошибки в форме большего или меньшего количества символов. Поэтому для определённых ячеек можно ограничить количество вводимых символов определенным числом.
- Выделяем ячейки (можно целиком строку(и), столбец(ы)).
- На вкладке Данные открываем Проверку данных .
- В открывшемся окне
в графе «Тип данных» выбираем — «длина текста»,
в графе «Значение» — «равно»,
в графе «Длина» указываем – «10» (для ИНН).

- Во вкладке «Сообщение об ошибке» можно задать индивидуальный заголовок и сообщение об этой ошибке. Например:

- После ввода текста сообщения нажимаем ОК.
Теперь при попытке ввести в указанные ячейки значения, не равные по длине 10 символам, появится сообщение об ошибке.

Причем ввести данные другого размера не получится.
Если ограничение по длине не принципиально, то во вкладке «Сообщение об ошибке» выберите пункт «Предупреждение», а не «остановка» как указано по умолчанию.

Теперь сообщение об ошибке будет появляться, но вы получите возможность вписать значения другого размера.
Как снять ограничение на количество символов в ячейке excel
Профиль
Группа: Участник
Сообщений: 98
Регистрация: 25.5.2006
Репутация: нет
Всего: нет
При формировании мною данных (отчасти автоматическом) в ячейке Excel может быть размещено более 255 символов. При использовании источников данных (как пример, при копировании листов) в этом случае никакого слияния данных из этой ячейки не происходит. Как побороть?
Профиль
Группа: Участник
Сообщений: 352
Регистрация: 13.6.2006
Где: Омск
Репутация: 2
Всего: 2
Можно по подробней о«При использовании источников данных (как пример, при копировании листов) в этом случае никакого слияния данных из этой ячейки не происходит»
Добавлено @ 23:37
| Цитата(Валк @ 26.8.2006, 16:03) |
| в ячейке Excel может быть размещено более 255 символов. |
В ячейку я запихнул 6000 символов (это конечно не предел). В одной ячейке, в видимой части или при распечатке вижу 1360 символов. Символы были ввиде:
1,2,3,4,5,6,7. 1441,1442,1443,1444,1445,
Профиль
Группа: Участник
Сообщений: 98
Регистрация: 25.5.2006
Репутация: нет
Всего: нет
Izuver
В ячейку Excel (речь идёт о 2000 и ХР) можно очень много символов «запихнуть». В любом случае, больше чем 255. Однако, это не означает, что потом из неё эти символы можно извлечь.
Попробуй открыть две книги. В любом листе одной из них в любую из ячеек запиши более 255 символов (любых, у меня, в частности, помимо обычных символьных использовались и служебные), затем щёлкни по по названию этого листа правой кнопкой манипулятора. В контекстном меню выбери Переместить/скопировать -> Выбираешь другую книгу -> Отмечаешь чек-бокс «Создавать копию» -> ОК (Внимание, в книге куда копируется лист не должно быть листа с именем как и у копируемого листа). Если у тебя в какой-либо ячейке более 255 символов, то Excel ругнётся, что не может скопировать все символы.
Это тебе как один из примеров «ограничения на 255 символов». Обойти его в этой ситуации возможно (выделяешь весь лист целиком и копируешь его на чистый лист другой книги).
У меня ситуация несколько другая (но она натыкается на такое же ограничение). Я использую слияние. Книга Excel у меня используется как источник данных из которого я их переношу в документ Word. Если в какой-либо ячейке получается более 255 символов, то эти данные либо переносятся не полностью, либо не переносятся вовсе. Я думал, что и в этом случае как-то можно обойти эту проблему. К сожалению, не получилось 🙁
Пришлось мне данные, в ячейках где происходит переполнение ограничения в 255 символов, распределять на несколько ячеек и в документе Word их собирать воедино. Недостатком этого способа является то, что (насколько я могу судить по своему небольшому опыту) связывать книгу Excel с документом Word можно используя небольшое количество ячеек (по-моему, около 70). И если перед решением возникшей проблемы я использовал всего 26 ячеек, то при разбивке данных мне пришлось использовать уже 48 ячеек.
Вопрос означенный в теме я помечаю как решённый, однако если кто знает как побороть это ограничение, то прошу отписать тут.
Хотя, как сказал мне Akina, это ограничение вроде как не обходится.
Профиль
Группа: Участник Клуба
Сообщений: 7325
Регистрация: 11.5.2005
Где: Porto Franco Odes sa
Репутация: нет
Всего: 146
| Код |
| Function CopyLongString(wrbook1, wrsheet1, x, y, wrbook2, wrsheet2) As Integer |
Dim i As Integer
Dim sx As String, ss As String
If Len(Workbooks(wrbook1).Worksheets(wrsheet1).Cells(x, y)) > 250 Then
sx = Workbooks(wrbook1).Worksheets(wrsheet1).Cells(x, y)
Workbooks(wrbook2).Worksheets(wrsheet2).Cells(x, y) = «»
i = Len(sx) / 250
For k = 0 To i
ss = Mid(sx, 1 + k * 250, 250)
Workbooks(wrbook2).Worksheets(wrsheet2).Cells(x, y) = Workbooks(wrbook2).Worksheets(wrsheet2).Cells(x, y) + ss
Next k
Else
Workbooks(wrbook2).Worksheets(wrsheet2).Cells(x, y) = Workbooks(wrbook1).Worksheets(wrsheet1).Cells(x, y)
End If
CopyLongString = 1
End Function
Function CopyWheet1(wrbook1, wrsheet1, wrbook21, wrsheet21) As Integer
Dim r As Integer
Dim ri As Integer
Dim c As Integer
Dim ci As Integer
r = Workbooks(wrbook1).Worksheets(wrsheet1).UsedRange.Rows.Count
c = Workbooks(wrbook1).Worksheets(wrsheet1).UsedRange.Columns.Count
For ri = 1 To r
For ci = 1 To c
z = CopyLongString(wrbook1, wrsheet1, ri, ci, wrbook21, wrsheet21)
Next ci
Next ri
CopyWheet1 = 1
End Function
Sub rrrr()
z = CopyWheet1(1, 1, 2, 1)
CopyWheet1(1, 1, 2, 1) — копирует с 1 книги 1 листа на 2 книгу 1 лист
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности.
Профиль
Группа: Участник
Сообщений: 98
Регистрация: 25.5.2006
Репутация: нет
Всего: нет
Romikgy
CopyWheet1(1, 1, 2, 1) — копирует с 1 книги 1 листа на 2 книгу 1 лист
Прости, а зачем мне копировать из одной книги Excel в другую книгу Excel? Пример с копированием листов я приводил в качестве наглядного пояснения «ограничения в 255 символов».
При использовании слияния (данные из книги Excel переносятся в документ Word) как можно использовать твой код?
Профиль
Группа: Участник Клуба
Сообщений: 7325
Регистрация: 11.5.2005
Где: Porto Franco Odes sa
Репутация: нет
Всего: 146
| Цитата(Валк @ 30.8.2006, 10:04 ) |
| данные из книги Excel переносятся в документ Word |
| Цитата(Валк @ 30.8.2006, 10:04 ) |
| Прости, а зачем мне копировать из одной книги Excel в другую книгу Excel? |
ты сказал , есть проблема с переносом длинных строк из одного листа книги на другой лист книги, я показал как ее обойти, также можно копировать в ворд, юзай только CopyLongString , правда ее переделать надо
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности.
Профиль
Группа: Участник
Сообщений: 98
Регистрация: 25.5.2006
Репутация: нет
Всего: нет
Romikgy
ты сказал , есть проблема с переносом длинных строк из одного листа книги на другой лист книги, я показал как ее обойти
Я тоже показал как её обойти ;о)
также можно копировать в ворд, юзай только CopyLongString
Хм, боюсь, это слишком сложно для такого как я.
Профиль
Группа: Участник Клуба
Сообщений: 7325
Регистрация: 11.5.2005
Где: Porto Franco Odes sa
Репутация: нет
Всего: 146
дык скажи че те конкретно надо , а не закоулками
ЗЫ сверху есть кнопочка тыстрая цитата , те понравиться
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности.
Профиль
Группа: Участник
Сообщений: 98
Регистрация: 25.5.2006
Репутация: нет
Всего: нет
Romikgy
дык скажи че те конкретно надо , а не закоулками
Так я вроде описал наверху задачу
Если интересует общая постановка задачи, то уже стыдно признаваться (ибо заранее знаю, что пошлют читать букварь).
Представь, что ты берёшь ипотечный кредит. Само собой у тебя будет целая пачка документов (кредитный договор, договор страхования, пара заявлений, несколько анкет и т. д. и т. п.). Все они стандартные, меняется только данные людей (Ф. И. О., паспортные данные, прописка. ).
Менеджеры документы заполняют по порядку: расчёт, договор, заявление. Чтобы данные которые уже заведены не заносить по новой я решил их из какой-то базы раздавать по разным документам.
Раздача крупных кусков у меня провалилась.
Профиль
Группа: Участник Клуба
Сообщений: 7325
Регистрация: 11.5.2005
Где: Porto Franco Odes sa
Репутация: нет
Всего: 146
| Цитата(Валк @ 30.8.2006, 15:00 ) |
| Представь, что ты берёшь ипотечный кредит |
не представляю, даже таких страшных слов не знаю
| Цитата(Валк @ 30.8.2006, 15:00 ) |
| из какой-то базы |
в качестве базы Эксель?
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности.
Профиль
Группа: Участник
Сообщений: 98
Регистрация: 25.5.2006
Репутация: нет
Всего: нет
Romikgy
в качестве базы Эксель?
Да.
Может выбор не такой уж и верный, и способ решения задачи не совсем оптимальный, только с моими знаниями и навыками — единственный вариант распостранения одинаковых сведений среди одинаковых шаблонов документов.
Профиль
Группа: Участник Клуба
Сообщений: 7325
Регистрация: 11.5.2005
Где: Porto Franco Odes sa
Репутация: нет
Всего: 146
самый простой вариант , раздели надписи в ячейках , что бы было меньше 250 символов , или переноси как показал я через VBA , имхо так будет даже правильнее и документы можно и формировать и форматировать автоматически
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности.
Профиль
Группа: Участник
Сообщений: 98
Регистрация: 25.5.2006
Репутация: нет
Всего: нет
Romikgy
самый простой вариант, раздели надписи в ячейках , что бы было меньше 250 символов
Да я так и сделал (сообщение от 29.8.2006, 12:02, третий абзац).
документы можно и формировать и форматировать автоматически
Хотелось бы сделать так, а то мой способ не совсем удобен и прост.
Профиль
Группа: Участник Клуба
Сообщений: 7325
Регистрация: 11.5.2005
Где: Porto Franco Odes sa
Репутация: нет
Всего: 146
| Цитата(Валк @ 31.8.2006, 10:12 ) |
| Хотелось бы сделать так, а то мой способ не совсем удобен и прост. |
ну дык учи вба, если что тут помагать будут
PS а то пространственные высказывания не несут информативности беседы
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности.
Профиль
Группа: Участник
Сообщений: 98
Регистрация: 25.5.2006
Репутация: нет
Всего: нет
Romikgy
учи вба, если что тут помагать будут
Не сегодня-завтра куплю букварь, денег уже выделили.
В связи с этим у меня вопрос не совсем по теме, какую книжку лучше купить? Мне на этом форуме посоветовали: Андрей Гарнаев, VBA, 848 с., БХВ-Петербург. Нашёл в нашем книжном магазине — 449 руб.
Я её просмотрел мельком, смущает, что не указана версия VBA (или хотя бы для какого он офиса), т. к. на работе я пользую Microsoft Office 2000, то боюсь, что если в ней рассматривается версия для более позднего офиса, то не все функции рассмотренные в книге будут работать у меня.
Может ещё какую книгу посоветуешь?
Профиль
Группа: Участник Клуба
Сообщений: 7325
Регистрация: 11.5.2005
Где: Porto Franco Odes sa
Репутация: нет
Всего: 146
посоветую на книги сильно не уповать , доставляешь в офисе хелп по ВБА и вперед , книгу дабы понять общий смысл , а в хелпе проверяешь конкретные ф-ции , и программишь
имхо в вба нет понятия версий, так что считается что она на всех одна хотя есть и отличия в разных версиях оффисов, так что учи все , и юзай хелп! и будет усе окей
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности.
Страницы: (2) [Все] 1 2
1. Публиковать ссылки на вскрытые компоненты
2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
- Несанкционированная реклама на форуме запрещена
- Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль «Помогите!» таковым не является.
- Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
- Оставляйте свои записи в «Книге отзывов о работе администрации»
- А вот тут лежит FAQ нашего подраздела
Если Вам понравилась атмосфера форума, заходите к нам чаще!
С уважением mihanik и staruha.
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Программирование, связанное с MS Office | Следующая тема » |
[ Время генерации скрипта: 0.1568 ] [ Использовано запросов: 21 ] [ GZIP включён ]
