|
Excel - проверка данных (validation) - custom
|
|||
---|---|---|---|
#18+
Кто нибудь работал с oбъектом validation ? Интересует возможность создать свой тип проверки Для этого в методе add можно задать тип xlValidateCustom В описании к нему написано : Formula1 is required, Formula2 is ignored. Formula1 must contain an expression that evaluates to True when data entry is valid and False when data entry is invalid. И вот помогите написать правильно Formula1. Например чтобы длина текста вводимого текста была не больше 2х Не получается у меня :( ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2003, 12:42 |
|
Excel - проверка данных (validation) - custom
|
|||
---|---|---|---|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2003, 13:32 |
|
Excel - проверка данных (validation) - custom
|
|||
---|---|---|---|
#18+
Вы не поняли. Я просил как самому написать проверку посредством типа xlValidateCustom. Проверка длины текста я просто привел к примеру. На самом деле будет другие условия - намного сложнее. И стандартными средставми их не опишешь. Для этого и создан тип xlValidateCustom В котором в Formula1 описываешь условие определяющее подходит введенное значение или нет. Но разобрать как правильно написать это условие я не могу. Поэтому прошу помочь описать данное условие на примере проверки длины текста. formula1 = Len(activecells.value) > 2 не проходит так как в activecells.value попадает значение на момент написания условия и оно не изменяется при смене ячейке. Следовательно как то не так нужно формировать условие. :( ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2003, 13:51 |
|
Excel - проверка данных (validation) - custom
|
|||
---|---|---|---|
#18+
Определение правильности вводимых данных с помощью формулы Выделите ячейки, на которые нужно наложить ограничения. Выберите команду Проверка в меню Данные, а затем откройте вкладку Параметры. Выберите тип Другой в окне Тип данных. В поле Формула введите формулу для расчета логического значения (ИСТИНА или ЛОЖЬ). Данные, вводимые в ячейку, считаются некорректными, если результатом вычислений является значение ЛОЖЬ. Перед формулой необходимо поставить знак равенства (=). Например, на листе производится расчет прибыли путем вычитания суммы вводимых издержек из расчетной суммы дохода. Может возникнуть необходимость поддерживать прибыль на уровне, превышающем определенный процент издержек. В этом случае для ячеек D6:D13, служащих для ввода издержек, следует определить допустимые данные с помощью формулы следующего вида: =Прибыль > СУММ(D6:D13) * 15%, где «Прибыль» — это имя ячейки. Если требуется, чтобы ячейка, на которую накладываются ограничения, оставалась пустой, а также, если формула включает изначально пустые ячейки, установите флажок Игнорировать пустые ячейки. Чтобы задействовать ограничения, которые были наложены на пустые ячейки так, как если бы эти ячейки содержали нули, снимите флажок Игнорировать пустые ячейки. Чтобы выводить подсказку, а также давать пояснения по поводу некорректных данных или предотвращать их ввод, укажите типы сообщений на вкладках Сообщение для ввода и Сообщение об ошибке. Инструкции Чтобы отменить вывод сообщений, снимите флажок Отображать подсказку, если ячейка является текущей на вкладке Сообщение для ввода, а также флажок Выводить сообщение об ошибке на вкладке Сообщение об ошибке. Примечания Перед тем как проанализировать формулу, Microsoft Excel производит вычисления с учетом введенных в ячейку данных. Используемая в качестве ограничения формула может анализировать данные только на том листе, на котором наложены ограничения. Чтобы употреблять в формуле данные из других листов или книг, введите ссылку на внешние данные в ячейку активного листа или определите на нем имя внешних данных. Таким образом формула будет содержать ссылку на ячейку или имя, находящиеся на том же листе. Например, если данные, которые требуется использовать в формуле, находятся в ячейке A6 на первом листе книги Бюджет.xls, можно определить имя «Данные» на активном листе как =[Бюджет.xls]Лист1!$A$6 и затем ввести ссылку на «Данные» в формулу. Чтобы получить более подробные сведения об определении имен, нажмите кнопку . В формулах, служащих для ограничения вводимых данных, нельзя употреблять константы массива. Если в поле Тип данных выбран тип, отличный от Другой, значением формулы, задающей ограничение, должно быть число. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2003, 16:09 |
|
Excel - проверка данных (validation) - custom
|
|||
---|---|---|---|
#18+
Ну смотри : Хорошо если в созданной формуле можно жестко указать ячейку или диапазон ячеек. Но вот пример. Мне нужно допустим для диапазона A1:A200 определить правильность водимых данных Длина текста отредактируемой ячейки не должна быть больше 2-х символов. Как указать формулу чтобы она работала для каждой ячейки в диапазоне A1:A200. То есть примерно должно быть что то типа этого : Formula1 = Len(<текущая ячейка в которую только что ввели данные>) < 2 Как определить эту ячейку ? Если она постоянно меняется.? Не буду же я эту формулу писать для каждой ячейки с указанием A1, A2, A3 … и т.д. Пробую вот так : Formula1 = Len(cells(Cells.Row, “A”).Value) < 2 Надеясь что под Cells.Row понимается как раз этот ряд. Но ничего не получается И кстати какой книгой пользуешся? Может скинешь Урл или саму книгу на емейл. ? Буду очень признателен. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2003, 19:43 |
|
Excel - проверка данных (validation) - custom
|
|||
---|---|---|---|
#18+
>Мне нужно допустим для диапазона A1:A200 определить правильность водимых данных > Не буду же я эту формулу писать для каждой ячейки с указанием A1, A2, A3 … и т.д. В таком случае, на мой взгляд, целесообразнее использовать обработчик Worksheet_Change(ByVal Target As Range) или Worksheet_SelectionChange(ByVal Target As Range) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.10.2003, 14:39 |
|
|
start [/forum/topic.php?fid=60&tid=2170522]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
60ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 363ms |
total: | 509ms |
0 / 0 |