Модераторы: mihanik

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как обойти ограничение в 255 символов? при использовании источников данных 
V
    Опции темы
Валк
Дата 26.8.2006, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 25.5.2006

Репутация: нет
Всего: нет



При формировании мною данных (отчасти автоматическом) в ячейке Excel может быть размещено более 255 символов. При использовании источников данных (как пример, при копировании листов) в этом случае никакого слияния данных из этой ячейки не происходит. Как побороть?
PM MAIL WWW   Вверх
Izuver
Дата 28.8.2006, 23:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 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,
PM MAIL ICQ   Вверх
Валк
Дата 29.8.2006, 12:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 25.5.2006

Репутация: нет
Всего: нет



Izuver
В ячейку Excel (речь идёт о 2000 и ХР) можно очень много символов "запихнуть". В любом случае, больше чем 255. Однако, это не означает, что потом из неё эти символы можно извлечь.

Попробуй открыть две книги. В любом листе одной из них в любую из ячеек запиши более 255 символов (любых, у меня, в частности, помимо обычных символьных использовались и служебные), затем щёлкни по по названию этого листа правой кнопкой манипулятора. В контекстном меню выбери Переместить/скопировать -> Выбираешь другую книгу -> Отмечаешь чек-бокс "Создавать копию" -> ОК (Внимание, в книге куда копируется лист не должно быть листа с именем как и у копируемого листа). Если у тебя в какой-либо ячейке более 255 символов, то Excel ругнётся, что не может скопировать все символы.
Это тебе как один из примеров "ограничения на 255 символов". Обойти его в этой ситуации возможно (выделяешь весь лист целиком и копируешь его на чистый лист другой книги).

У меня ситуация несколько другая (но она натыкается на такое же ограничение). Я использую слияние. Книга Excel у меня используется как источник данных из которого я их переношу в документ Word. Если в какой-либо ячейке получается более 255 символов, то эти данные либо переносятся не полностью, либо не переносятся вовсе. Я думал, что и в этом случае как-то можно обойти эту проблему. К сожалению, не получилось :-(
Пришлось мне данные, в ячейках где происходит переполнение ограничения в 255 символов, распределять на несколько ячеек и в документе Word их собирать воедино. Недостатком этого способа является то, что (насколько я могу судить по своему небольшому опыту) связывать книгу Excel с документом Word можно используя небольшое количество ячеек (по-моему, около 70). И если перед решением возникшей проблемы я использовал всего 26 ячеек, то при разбивке данных мне пришлось использовать уже 48 ячеек.

Вопрос означенный в теме я помечаю как решённый, однако если кто знает как побороть это ограничение, то прошу отписать тут.
Хотя, как сказал мне Akina, это ограничение вроде как не обходится.
PM MAIL WWW   Вверх
Romikgy
Дата 29.8.2006, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 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)

End Sub


CopyWheet1(1, 1, 2, 1) - копирует с 1 книги 1 листа  на 2 книгу 1 лист


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Валк
Дата 30.8.2006, 11:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 25.5.2006

Репутация: нет
Всего: нет



Romikgy
CopyWheet1(1, 1, 2, 1) - копирует с 1 книги 1 листа  на 2 книгу 1 лист
Прости, а зачем мне копировать из одной книги Excel в другую книгу Excel? Пример с копированием листов я приводил в качестве наглядного пояснения "ограничения в 255 символов".
При использовании слияния (данные из книги Excel переносятся в документ Word) как можно использовать твой код?
PM MAIL WWW   Вверх
Romikgy
Дата 30.8.2006, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: нет
Всего: 146



Цитата(Валк @  30.8.2006,  10:04 Найти цитируемый пост)
данные из книги Excel переносятся в документ Word

точнее ?
Цитата(Валк @  30.8.2006,  10:04 Найти цитируемый пост)
Прости, а зачем мне копировать из одной книги Excel в другую книгу Excel? 

ты сказал , есть проблема с переносом длинных строк из одного листа книги на другой лист книги, я показал как ее обойти, также можно копировать в ворд, юзай только CopyLongString , правда ее переделать надо smile


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Валк
Дата 30.8.2006, 12:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 25.5.2006

Репутация: нет
Всего: нет



Romikgy
ты сказал , есть проблема с переносом длинных строк из одного листа книги на другой лист книги, я показал как ее обойти
Я тоже показал как её обойти ;о)

также можно копировать в ворд, юзай только CopyLongString
Хм, боюсь, это слишком сложно для такого user posted image как я.
PM MAIL WWW   Вверх
Romikgy
Дата 30.8.2006, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: нет
Всего: 146



дык скажи че те конкретно надо , а не закоулками

ЗЫ сверху  есть кнопочка тыстрая цитата , те понравиться smile


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Валк
Дата 30.8.2006, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 25.5.2006

Репутация: нет
Всего: нет



Romikgy
дык скажи че те конкретно надо , а не закоулками
Так я вроде описал наверху задачу user posted image

Если интересует общая постановка задачи, то уже стыдно признаваться (ибо заранее знаю, что пошлют читать букварь).
Представь, что ты берёшь ипотечный кредит. Само собой у тебя будет целая пачка документов (кредитный договор, договор страхования, пара заявлений, несколько анкет и т. д. и т. п.). Все они стандартные, меняется только данные людей (Ф. И. О., паспортные данные, прописка...).
Менеджеры документы заполняют по порядку: расчёт, договор, заявление... Чтобы данные которые уже заведены не заносить по новой я решил их из какой-то базы раздавать по разным документам.
Раздача крупных кусков у меня провалилась.
PM MAIL WWW   Вверх
Romikgy
Дата 30.8.2006, 16:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: нет
Всего: 146



Цитата(Валк @  30.8.2006,  15:00 Найти цитируемый пост)
Представь, что ты берёшь ипотечный кредит

не представляю, даже таких страшных слов не знаю
Цитата(Валк @  30.8.2006,  15:00 Найти цитируемый пост)
из какой-то базы 

в качестве базы Эксель?


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Валк
Дата 31.8.2006, 07:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 25.5.2006

Репутация: нет
Всего: нет



Romikgy
в качестве базы Эксель?
Да.
Может выбор не такой уж и верный, и способ решения задачи не совсем оптимальный, только с моими знаниями и навыками - единственный вариант распостранения одинаковых сведений среди одинаковых шаблонов документов.
PM MAIL WWW   Вверх
Romikgy
Дата 31.8.2006, 09:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: нет
Всего: 146



самый простой вариант , раздели надписи в ячейках , что бы было меньше 250 символов , или переноси как показал я через VBA , имхо так будет даже правильнее и документы можно и формировать и форматировать автоматически


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Валк
Дата 31.8.2006, 11:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 25.5.2006

Репутация: нет
Всего: нет



Romikgy
самый простой вариант, раздели надписи в ячейках , что бы было меньше 250 символов
Да я так и сделал (сообщение от 29.8.2006, 12:02, третий абзац).

документы можно и формировать и форматировать автоматически
Хотелось бы сделать так, а то мой способ не совсем удобен и прост.
PM MAIL WWW   Вверх
Romikgy
Дата 31.8.2006, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: нет
Всего: 146



Цитата(Валк @  31.8.2006,  10:12 Найти цитируемый пост)
Хотелось бы сделать так, а то мой способ не совсем удобен и прост. 

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


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Валк
Дата 31.8.2006, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 25.5.2006

Репутация: нет
Всего: нет



Romikgy
учи вба, если что тут помагать будут
Не сегодня-завтра куплю букварь, денег уже выделили.
В связи с этим у меня вопрос не совсем по теме, какую книжку лучше купить? Мне на этом форуме посоветовали: Андрей Гарнаев, VBA, 848 с., БХВ-Петербург. Нашёл в нашем книжном магазине - 449 руб.
Я её просмотрел мельком, смущает, что не указана версия VBA (или хотя бы для какого он офиса), т. к. на работе я пользую Microsoft Office 2000, то боюсь, что если в ней рассматривается версия для более позднего офиса, то не все функции рассмотренные в книге будут работать у меня.
Может ещё какую книгу посоветуешь?
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование, связанное с MS Office"
mihanik staruha

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами



  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • Оставляйте свои записи в "Книге отзывов о работе администрации"
  • А вот тут лежит FAQ нашего подраздела


Если Вам понравилась атмосфера форума, заходите к нам чаще!
С уважением mihanik и staruha.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема »


 




[ Время генерации скрипта: 0.0895 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.