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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обращение к объединенным ячейками 
V
    Опции темы
ИгнатьевАлексей
Дата 22.12.2007, 18:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Друзья! Кто сталкивался с проблемой?

У меня есть стандартный документ, изменять его форму нельзя. В нем есть объединенные ячейки. Например, объеднены ячейки A1 и А2. В этой объединенной ячейке записано выражение, например "Vingrad the best". При помощи метода .offset я обращаюсь раздельно к ячейкам А1 и А2. При чтении из А1 я получаю  "Vingrad the best", а при чтении из А2 получаю ""(пустоту). Но, блин, логика документа подразумевает,   что и в А2 стоит "Vingrad the best". 
Как тут быть? Как обойтись малой кровью?  smile 

Заранее благодарен!


--------------------
Vingrad - FOREVER !!! 

"Как вы яхту назовете - так она и поплывет!" 
 Капитан Врунгель 
PM MAIL   Вверх
Naghual
Дата 22.12.2007, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

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



Как мне помнится, именно так и должно быть!
ОДНО значение на объединенные ячейки. 


--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
ИгнатьевАлексей
Дата 22.12.2007, 21:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Naghual,  а как же человечество живет с этим?  smile 

Похоже, при объединении ячеек, если что-то было в одной ячейке, это что то приобретает адрес левой верхней ячейки. В других ячейках при программном обращении - пустота. 
У меня только вертикальные объединения. Навешивать дополнительную фунуцию, которая ползет вверх по ячейкам, пока не найдет первую непустую, что ли? Ужас как неэлегантно, имхо!  smile 

как же быть?   smile 


--------------------
Vingrad - FOREVER !!! 

"Как вы яхту назовете - так она и поплывет!" 
 Капитан Врунгель 
PM MAIL   Вверх
ИгнатьевАлексей
Дата 22.12.2007, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Немного подразобрался сам, было время. Может, кому и интересно.  smile 

Набросал функцию. Не очень элегантно, но работает.
Код

Function MergeCellVal(ByRef funRange As Range) As String
    If funRange.MergeCells Then
         Dim funRange_2 As Range
         Set funRange_2 = funRange.MergeArea
         MergeCellVal = funRange_2.Cells(1, 1).Value
         Set funRange_2 = Nothing
    Else
         MergeCellVal = funRange.Value
    End If
   End Function


Может кто попроще решение знает? А то теперь мне каждую ячейку документа придется через эту функцию читать!  smile   smile 

Это сообщение отредактировал(а) ИгнатьевАлексей - 23.12.2007, 10:18


--------------------
Vingrad - FOREVER !!! 

"Как вы яхту назовете - так она и поплывет!" 
 Капитан Врунгель 
PM MAIL   Вверх
Naghual
Дата 23.12.2007, 23:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

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



А в чем фишка функции?  Возвращает единственное значение.
Может конечно в контексте вашей задачи это и необходимо... Незнаю.


--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
ИгнатьевАлексей
Дата 24.12.2007, 11:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Naghual, как я понял работу любимого екселя, то происходит так:
Ячейка A1-пустая, ячейка A2-"Солома", ячейка A3-пустая. Юзер объединяет ячейки A1:A3, подразумевая, что "Солома" относится ко всем 3-м ячейкам (визуально так и получается). Однако, после объединения  эксель присваивает значение "Солома" первой ячейке объединенного диапазона, то есть A1. Что получается, визуально "Солома" стоит во всех 3-х ячейках, а при программном обращении (чтении) получается: A1- "Солома" , A2-пусто, A3-пусто. 
Я задал вопрос общественности, но, как ни странно, никто ничего не посоветовал. Хотя я уверен, что это популярные грабли.
Функция эту проблему решает.
И еще...есть у меня смутные сомнения, что когда то я делал что то, и в аналогичном случае в объединенной ячейке у меня со всех составных ячеек читались одинаковые значения.



--------------------
Vingrad - FOREVER !!! 

"Как вы яхту назовете - так она и поплывет!" 
 Капитан Врунгель 
PM MAIL   Вверх
Akina
Дата 24.12.2007, 12:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

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



Цитата(ИгнатьевАлексей @  22.12.2007,  19:01 Найти цитируемый пост)
логика документа подразумевает,   что и в А2 стоит "Vingrad the best". 

нет

Цитата(ИгнатьевАлексей @  24.12.2007,  12:18 Найти цитируемый пост)
Ячейка A1-пустая, ячейка A2-"Солома", ячейка A3-пустая. Юзер объединяет ячейки A1:A3, подразумевая, что "Солома" относится ко всем 3-м ячейкам (визуально так и получается). Однако, после объединения  эксель присваивает значение "Солома" первой ячейке объединенного диапазона, то есть A1. Что получается, визуально "Солома" стоит во всех 3-х ячейках, а при программном обращении (чтении) получается: A1- "Солома" , A2-пусто, A3-пусто. 
Я задал вопрос общественности, но, как ни странно, никто ничего не посоветовал. Хотя я уверен, что это популярные грабли.

Это не грабли и не косяк. Это именно так и есть. 

Подумай, что идентифицирует объединенную ячейку? координата левого верхнего угла и количество объединяемых ячеек по каждому измерению. Все. Далее - к какому из этих параметров может быть привязано содержимое (и все остальное - заливка, границы и пр.)? только к координате левого верхнего угла. Что мы собсно и наблюдаем.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
ИгнатьевАлексей
Дата 24.12.2007, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Akina, под фразой "логика документа" я имел ввиду того человека, который этод документ составлял. Он не программист. Он видит, что для группы ячеек имеется идентичное значение - взял и объединил. А я, программист (юный), работаю с этим документом и имею (имел) проблему. Вот суть моего вопроса.

Akina, еще раз спасибо за разъяснение! Задача решена, но я до сих пор не уверен в рациональности своего решения.


--------------------
Vingrad - FOREVER !!! 

"Как вы яхту назовете - так она и поплывет!" 
 Капитан Врунгель 
PM MAIL   Вверх
Akina
Дата 24.12.2007, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

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



Цитата(ИгнатьевАлексей @  24.12.2007,  14:41 Найти цитируемый пост)
под фразой "логика документа" я имел ввиду того человека, который этод документ составлял. Он не программист.

Конечно. Раз он делал отчет (читай - текстовый документ) в Экселе (читай - табличном процессоре) - то он ламер (хотя на самом деле надо выразиться намного грубее).


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
ИгнатьевАлексей
Дата 24.12.2007, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Akina. Посмотри, плз, на вид документа. Мне бы было интересно, в каком редакторе его удобнее было выполнить, чтобы:
1. Удобно построить документ и удобно работать с ним. У всех он был (редактор). Ремарка - таких листов в книге десятки.
2. Удобно писать макросы-утилиты по автоматизации производства документов, то есть на основе подобных листов генерируются схемы.

Простите за  smile .

Добавлено через 37 секунд
Забыл вложение

Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  _______________.zip 26,51 Kb


--------------------
Vingrad - FOREVER !!! 

"Как вы яхту назовете - так она и поплывет!" 
 Капитан Врунгель 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование, связанное с MS Office"
mihanik staruha

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

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

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



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


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

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


 




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


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

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