|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
17.05.2010, 01:25 | #1 |
Участник клуба
Регистрация: 28.06.2009
Сообщений: 1,950
|
Возможно ли создать такой пользовательский формат?
Привет.
Возникла следующая проблема. В ячейке есть некоторый текст, и нужно создать некоторые свои форматы, при выборе которых по определенным правилам изменялось бы отображаемое в ячейке значение. Но само значение Cells(i,j).Value от этого бы не менялось, как бы мы там не переставляли форматы. Это главное. Теперь о формате. Текст имеет вид [min,max], где min, max - числа. Например, [100,110] Нужно иметь возможность: - отображать это в виде min,max: 100,110 - менять разрядность произвольным образом: [100.0,110.0] - делать процентный и экспоненциальный формат [10000%,11000%] - и др. функции типа разделителей в виде пробелов [1 000, 2 000]. Также нужно, чтобы можно было представлять такой текст в виде одного числа, которое можно как-то вычислить - напр., среднее арифметическое, при выполнении какого-то условия - напр., если разница между числами не превышает к.-либо значения. Итак, возможна такая вещь в Экселе (2007 или 2010) или нет? Если да, как ее сделать? Спасибо |
17.05.2010, 01:50 | #2 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
За счет форматов в ячейке можно отобразить любую информацию. Надо только определить при каких обстоятельствах и по каким правилам назначается формат. Всего в книге можно задать 64 тыс. разных форматов ячеек.
Все это должен делать макрос.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
17.05.2010, 01:53 | #3 |
Участник клуба
Регистрация: 28.06.2009
Сообщений: 1,950
|
Сначала формат у ячейки Общий. Формат должен включаться при выборе нового формата из списка или при программном присвоении ячейке этого нового формата.
К примеру, реально ли сделать такое: есть текст [20.11,30.57]. После применения формата из этого текста получается [20.1,30.6]. Либо есть [1111,2222], получается [1 111, 2 222]? Спасибо за ответ |
17.05.2010, 10:42 | #4 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
небольшой пример во вложении
если скрыть колонки С, D, F и показать человеку немного понимающему в Excel, что находится в Е - это должно заставить его крепко задуматься.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
17.05.2010, 14:26 | #5 |
Участник клуба
Регистрация: 28.06.2009
Сообщений: 1,950
|
Насколько я понял, вы сделали новые форматы (3 шт.). Но можно ли настраивать их полностью так же, как и обычные - делать число знаков после запятой и т.п.?
Насчет неравенства ячеек - в этом, по-моему, как раз и проявляется разница между Value и Text. |
17.05.2010, 17:23 | #6 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
В примере я задал форматы для ячеек А3 и А4.
В ячейке А3 содержится [20.11,30.57] хотя согласно формата видно [20.1,30.6] Соответственно - в А4 находится [1111,2222], а видно [1 111, 2 222]. Формат можно настроить для положительных чисел, отрицательных, нуля и текста. Т.е. в формате ячейки может быть 4 формата, автоматически применяется формат согласно значения.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
17.05.2010, 20:21 | #7 |
Участник клуба
Регистрация: 28.06.2009
Сообщений: 1,950
|
Всё-таки ваш вариант с долей юмора - я попробовал изменить число в ячейке, а Эксел вместо нужного изменения опять возвращает старое число. Зачем так?
Кроме того, не понятно, как можно изменить разрядность. |
17.05.2010, 20:44 | #8 | |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
Нет в моем варианте никакого юмора, в нем полное недоумение я совершенно не понимаю, что требуется получить.
прозвучал конкретный вопрос: Цитата:
Следующий шаг - Вы должны описать: данные такого типа (описать какого именно) должны выглядеть так (описать к какому виду их привести)... И так для каждого типа. Опишите пару типов, покажу что можно сделать.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
|
17.05.2010, 20:55 | #9 |
Участник клуба
Регистрация: 28.06.2009
Сообщений: 1,950
|
Я, конечно, написал это в виде примера, т.е. цифры там могут быть любые (а не только для разового случая). Поэтому я и попробовал изменить числа. При этом рассчитывал на то, что формат изменится автоматически, и останется нужное число цифр после запятой. Т.е., я ввел [64.11,90.57], а вместо [64.1,90.6] в ячейке A3 осталось видно то же самое [20.1,30.6].
К такому виду нужно приводить текст, находящийся в ячейке (string). Так как в начале строки находится квадратная скобка, это текст, а не какой-то другой тип. Кроме этого, я понял, что ваш пример предусматривает автоматическое создание нового формата для каждого случая, т.е. формат должен генерироваться "на лету", если мы хотим видеть число в нужной форме. Ведь применение этого формата к новому числу не дает нужный рез-т! Т.е., мы должны будем заменять везде формат на ;;;"[и тут нужное число]". Но тогда будет очень много разных форматов, а не один, который выполняет все нужные преобразования. |
17.05.2010, 21:56 | #10 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
наконец-то мы понимаем друг друга.
Чтобы формат поменялся на лету, надо располагать сводом правил как изменять формат. В А3 числа будут округляться до десятых. Аналогичным образом Вы можете заменить что угодно.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как мне создать вот такой объект? | Тупой | Microsoft Office Excel | 2 | 10.12.2009 00:12 |
Интересует такой вопрос. Как создать круговую диаграмму в Дельфи | Grisha248 | Компоненты Delphi | 6 | 26.05.2009 18:06 |
Пользовательский формат VBA Excel | luxery | Microsoft Office Excel | 13 | 07.11.2008 21:00 |
Создать свой формат файла | Манжосов Денис :) | Общие вопросы Delphi | 7 | 24.08.2008 17:48 |
пользовательский формат или объединение содержимого | mr.beginner | Microsoft Office Excel | 3 | 08.07.2008 16:39 |