| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Программирование, связанное с MS Office > Обращение к объединенным ячейками |
| Автор: ИгнатьевАлексей 22.12.2007, 18:01 |
| Друзья! Кто сталкивался с проблемой? У меня есть стандартный документ, изменять его форму нельзя. В нем есть объединенные ячейки. Например, объеднены ячейки A1 и А2. В этой объединенной ячейке записано выражение, например "Vingrad the best". При помощи метода .offset я обращаюсь раздельно к ячейкам А1 и А2. При чтении из А1 я получаю "Vingrad the best", а при чтении из А2 получаю ""(пустоту). Но, блин, логика документа подразумевает, что и в А2 стоит "Vingrad the best". Как тут быть? Как обойтись малой кровью? Заранее благодарен! |
| Автор: Naghual 22.12.2007, 19:03 |
| Как мне помнится, именно так и должно быть! ОДНО значение на объединенные ячейки. |
| Автор: ИгнатьевАлексей 22.12.2007, 21:07 |
| Naghual, а как же человечество живет с этим? Похоже, при объединении ячеек, если что-то было в одной ячейке, это что то приобретает адрес левой верхней ячейки. В других ячейках при программном обращении - пустота. У меня только вертикальные объединения. Навешивать дополнительную фунуцию, которая ползет вверх по ячейкам, пока не найдет первую непустую, что ли? Ужас как неэлегантно, имхо! как же быть? |
| Автор: ИгнатьевАлексей 22.12.2007, 23:01 | ||
| Немного подразобрался сам, было время. Может, кому и интересно. Набросал функцию. Не очень элегантно, но работает.
Может кто попроще решение знает? А то теперь мне каждую ячейку документа придется через эту функцию читать! |
| Автор: Naghual 23.12.2007, 23:27 |
| А в чем фишка функции? Возвращает единственное значение. Может конечно в контексте вашей задачи это и необходимо... Незнаю. |
| Автор: ИгнатьевАлексей 24.12.2007, 11:18 |
| Naghual, как я понял работу любимого екселя, то происходит так: Ячейка A1-пустая, ячейка A2-"Солома", ячейка A3-пустая. Юзер объединяет ячейки A1:A3, подразумевая, что "Солома" относится ко всем 3-м ячейкам (визуально так и получается). Однако, после объединения эксель присваивает значение "Солома" первой ячейке объединенного диапазона, то есть A1. Что получается, визуально "Солома" стоит во всех 3-х ячейках, а при программном обращении (чтении) получается: A1- "Солома" , A2-пусто, A3-пусто. Я задал вопрос общественности, но, как ни странно, никто ничего не посоветовал. Хотя я уверен, что это популярные грабли. Функция эту проблему решает. И еще...есть у меня смутные сомнения, что когда то я делал что то, и в аналогичном случае в объединенной ячейке у меня со всех составных ячеек читались одинаковые значения. |
| Автор: ИгнатьевАлексей 24.12.2007, 13:41 |
| Akina, под фразой "логика документа" я имел ввиду того человека, который этод документ составлял. Он не программист. Он видит, что для группы ячеек имеется идентичное значение - взял и объединил. А я, программист (юный), работаю с этим документом и имею (имел) проблему. Вот суть моего вопроса. Akina, еще раз спасибо за разъяснение! Задача решена, но я до сих пор не уверен в рациональности своего решения. |
| Автор: Akina 24.12.2007, 14:27 | ||
Конечно. Раз он делал отчет (читай - текстовый документ) в Экселе (читай - табличном процессоре) - то он ламер (хотя на самом деле надо выразиться намного грубее). |
| Автор: ИгнатьевАлексей 24.12.2007, 15:12 |
| Akina. Посмотри, плз, на вид документа. Мне бы было интересно, в каком редакторе его удобнее было выполнить, чтобы: 1. Удобно построить документ и удобно работать с ним. У всех он был (редактор). Ремарка - таких листов в книге десятки. 2. Удобно писать макросы-утилиты по автоматизации производства документов, то есть на основе подобных листов генерируются схемы. Простите за Добавлено через 37 секунд Забыл вложение |