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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Возможно ли создать такой пользовательский формат? в Экселе 2007 или 2010 
:(
    Опции темы
motorway
  Дата 17.5.2010, 23:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Привет.
Возникла следующая проблема. В ячейке есть некоторый текст, и нужно создать некоторые свои форматы, при выборе которых по определенным правилам изменялось бы отображаемое в ячейке значение. Но само значение Cells(i,j).Value от этого бы не менялось, как бы мы там не переставляли форматы. Это главное.
Теперь о формате.
Текст имеет вид [min,max], где min, max - числа.
Например, [100,110]
Нужно иметь возможность:
- отображать это в виде min,max: 100,110
- менять разрядность произвольным образом: [100.0,110.0]
- делать процентный и экспоненциальный формат [10000%,11000%]
- и др. функции типа разделителей в виде пробелов [1 000, 2 000].
Также нужно, чтобы можно было представлять такой текст в виде одного числа, которое можно как-то вычислить - напр., среднее арифметическое, при выполнении какого-то условия - напр., если разница между числами не превышает к.-либо значения.
Короче, мы просто выбираем формат, аналогичный всем уже присутствующим в Экселе, и строка меняется так, как если бы этот формат применился к обоим числам, и получилась бы новая строка [minNEW,maxNEW].

Итак, возможна такая вещь в Экселе (2007 или 2010) или нет? Если да, как ее сделать?
Спасибо 
PM MAIL   Вверх
Akina
Дата 18.5.2010, 07:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Существующие типы шаблонов оперируют только знакоместами и заполнителями (ну ещё округление), вычислениями там и не пахнет... даже штатной функции FORMAT() описанное не под силу.
ИМХО невозможно. Созданием именно формата. Без изменения Cell.Value.
Но ВООБЩе это (наполовину) возможно. Написанием макроса, который по событию на книге или листе переберёт имеющиеся ячейки, по какому-либо признаку в поле формата ячейки определит те, которые следует подвергнуть этому "хитрому" форматированию, и программно их переформатировать. При этом, несомненно, Value будет изменено. Я уж не говорю о том, что по смыслу такая функция должна быть либо обработчиком, либо Volatile, что гарантирует изрядные тормоза на более-менее приличных массивах данных.


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

PM MAIL WWW ICQ Jabber   Вверх
motorway
Дата 18.5.2010, 23:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Да уж, очень жаль. А допустим, заказчику такая вещь очень нужна, и из-за этого может все сорваться. Что тут можно придумать? smile 
PM MAIL   Вверх
Akina
Дата 19.5.2010, 07:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Задача на самом деле несложная, если её решать не форматированием, а макросом.


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

PM MAIL WWW ICQ Jabber   Вверх
motorway
Дата 19.5.2010, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



А что вы думаете насчет генерации формата "на лету"? Есть возможность делать искусственный формат вида ;;;"[minNEW,maxNEW]". Стоит так делать?
Минусы в том, что это будет у каждой ячейки новый формат, а не один общий.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование, связанное с MS Office"
mihanik staruha

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

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

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



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


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

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


 




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


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

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