|
|
|
Excel вызов функции vba
|
|||
|---|---|---|---|
|
#18+
Как вызвать ф-цию vba из ячейки? В екселе есть ф-ция проверки данных, на вкладе параметры можно выбрать тип данных "другой" и указать формулу, так вот, нужно что бы эта формула выполняла vba ф-цию и возвращала результат true-false. Нужно свою проверку организовать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2011, 13:22 |
|
||
|
Excel вызов функции vba
|
|||
|---|---|---|---|
|
#18+
А в чем проблема? Я попробовал - у меня не возникло проблем прям в ячейке написать вызов пользовательской функции ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2011, 13:29 |
|
||
|
Excel вызов функции vba
|
|||
|---|---|---|---|
|
#18+
Shocker.ProА в чем проблема? Я попробовал - у меня не возникло проблем прям в ячейке написать вызов пользовательской функции пример можно, не силен я в этом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2011, 13:33 |
|
||
|
Excel вызов функции vba
|
|||
|---|---|---|---|
|
#18+
_unkind_Shocker.ProА в чем проблема? Я попробовал - у меня не возникло проблем прям в ячейке написать вызов пользовательской функции пример можно, не силен я в этомсвой пример первоначальных данных нарисуйте... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2011, 13:49 |
|
||
|
Excel вызов функции vba
|
|||
|---|---|---|---|
|
#18+
ну так например ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2011, 14:10 |
|
||
|
Excel вызов функции vba
|
|||
|---|---|---|---|
|
#18+
обязательно первой строчкой пользовательской функции должна быть такая строка: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2011, 14:49 |
|
||
|
Excel вызов функции vba
|
|||
|---|---|---|---|
|
#18+
Shocker.Proну так например ок, это я понимаю, а терперь если засунуть эту формулм в проверку данных и попытаться ввести "хорошо", все равно выскакивает исключение. Ячейка F7 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2011, 16:00 |
|
||
|
Excel вызов функции vba
|
|||
|---|---|---|---|
|
#18+
Djon Playerобязательно первой строчкой пользовательской функции должна быть такая строка: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2011, 16:35 |
|
||
|
Excel вызов функции vba
|
|||
|---|---|---|---|
|
#18+
PlanB, По моему примеру ничего сказать не можете?( Нужно писать свою ф-цию полностью и вешать ее на Worksheet_Change? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2011, 16:51 |
|
||
|
Excel вызов функции vba
|
|||
|---|---|---|---|
|
#18+
Я не понял, что именно требуется и что не работает. В моем файле существенных изменений найти не смог. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2011, 17:06 |
|
||
|
Excel вызов функции vba
|
|||
|---|---|---|---|
|
#18+
PlanBкак я понимаю, это делает её летучей.. так зачем это ужно, при условии, что у функции есть аргументы и она будет пересчитываться по событиям их изменения..да, для для летучести. В некоторых случаях без этого функция может не пересчитываться, зависит как аргументы передаются. Быть может в данном примере она и не нужна, но думаю что автору топику надо хотя бы про неё узнать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2011, 17:11 |
|
||
|
Excel вызов функции vba
|
|||
|---|---|---|---|
|
#18+
Shocker.ProЯ не понял, что именно требуется и что не работает. В моем файле существенных изменений найти не смог. Ячейка F7. Нужно организовать проверку через "Проверка"-"Проверка данных". в "Параметрах"-"Тип данных"="Другой" и указать в формуле вызов ф-ции VBA. В которую передается значение ячейки и если все ок, то ничего не происходит, если нет то выскакивает сообщение проверки данных Сейчас там формула на количество знаков(от 5 до 10), если меньше-больше, то выводится ошибка. Нужно реализовать тоже самое только в VBA, а вызов функции из проверки данных Новый пример ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2011, 17:13 |
|
||
|
Excel вызов функции vba
|
|||
|---|---|---|---|
|
#18+
_unkind_, вообще есть такая возможность?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2011, 17:20 |
|
||
|
Excel вызов функции vba
|
|||
|---|---|---|---|
|
#18+
теперь понял мне тоже не удалось туда ввести пользовательскую функцию ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2011, 17:20 |
|
||
|
Excel вызов функции vba
|
|||
|---|---|---|---|
|
#18+
приведу пример когда без летучести работает неверно например создаем функцию Код: plaintext 1. 2. затем в ячейке A1 пишем формулу вида =uf(B1), результат будет $B$1 далее делаем вставку строки перед первой строкой в результате у нас формула переместиться в ячейку A2 и формула в ней поменяется на =uf(B2), но значение при этом всё равно будет $B$1, что неправильно. В то время такой код Код: plaintext 1. 2. 3. Так что думаю лучше перестраховаться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2011, 17:21 |
|
||
|
Excel вызов функции vba
|
|||
|---|---|---|---|
|
#18+
а что касается самого вопроса автора, попробовал, пользовательскую функцию не дает вставить. Можно попробовать это обойти, создать имя, значением которой будет пользовательская функция. А уже в проверке использовать это имя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2011, 17:26 |
|
||
|
Excel вызов функции vba
|
|||
|---|---|---|---|
|
#18+
Djon Playerа что касается самого вопроса автора, попробовал, пользовательскую функцию не дает вставить. Можно попробовать это обойти, создать имя, значением которой будет пользовательская функция. А уже в проверке использовать это имя. Создать имя? свою excel функцию? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2011, 17:30 |
|
||
|
Excel вызов функции vba
|
|||
|---|---|---|---|
|
#18+
_unkind_, примерчик небольшой если можно) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2011, 17:33 |
|
||
|
Excel вызов функции vba
|
|||
|---|---|---|---|
|
#18+
_unkind_, Сделайте проще. 2 ячейки: проверяемая и вспомогательная. Во вспомогательную пишете формулу: =rrr(Адрес_проверяемой); В проверяемой тип данных: другой; формула: =адрес_вспомогательной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2011, 21:58 |
|
||
|
Excel вызов функции vba
|
|||
|---|---|---|---|
|
#18+
Djon Playerобязательно первой строчкой пользовательской функции должна быть такая строка: Код: plaintext Совершенно не нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2011, 21:59 |
|
||
|
Excel вызов функции vba
|
|||
|---|---|---|---|
|
#18+
DaniilSeryiDjon Playerобязательно первой строчкой пользовательской функции должна быть такая строка: Код: plaintext Совершенно не нужно.выше я привел пример, в котором даже при изменении аргументов функции значение функции не пересчитывается, в результате функция начинает показывать некорректные данные. Поэтому чем потом разбираться, почему не работает, проще добавить эту строчку, чтобы уже наверняка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2011, 23:12 |
|
||
|
Excel вызов функции vba
|
|||
|---|---|---|---|
|
#18+
Djon PlayerDaniilSeryiпропущено... Совершенно не нужно.выше я привел пример, в котором даже при изменении аргументов функции значение функции не пересчитывается, в результате функция начинает показывать некорректные данные. Поэтому чем потом разбираться, почему не работает, проще добавить эту строчку, чтобы уже наверняка. Тут надо настройки посмотреть: Сервис - Параметры- Вычисления: поставьте точечку у автоматически и будет Вам счастье. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2011, 14:56 |
|
||
|
Excel вызов функции vba
|
|||
|---|---|---|---|
|
#18+
DaniilSeryi, у меня всегда установлено автоматически. И в момент проверки тоже было включено. Даже сейчас специально в этом убедился и заново проверил приведенный пример, один фиг он не пересчитывается при вставке строки над строкой формулы, хотя параметры передающиеся в функцию изменяются. Проверьте сами, я проверял на Excel 2003 SP3. Я же не от балды это написал, я с такой ситуацией уже ранее сталкивался много лет назад и только отключении опции летучести тогда помогло. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2011, 16:39 |
|
||
|
Excel вызов функции vba
|
|||
|---|---|---|---|
|
#18+
Djon PlayerDaniilSeryi, у меня всегда установлено автоматически. И в момент проверки тоже было включено. Даже сейчас специально в этом убедился и заново проверил приведенный пример, один фиг он не пересчитывается при вставке строки над строкой формулы, хотя параметры передающиеся в функцию изменяются. Проверьте сами, я проверял на Excel 2003 SP3. Я же не от балды это написал, я с такой ситуацией уже ранее сталкивался много лет назад и только отключении опции летучести тогда помогло.полностью согласен. однако данный случай - скорее исключение... уж точно к ТС не про это спрашиавл =))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2011, 15:55 |
|
||
|
Excel вызов функции vba
|
|||
|---|---|---|---|
|
#18+
Можно без вспомогательных ячеек запихнуть в проверку функцию пользователя. Для этого надо лишь создать именованную формулу. В примере это реализовано. Отображаем диспетчер имен(Ctrl+F3), создаем там формулу - =rrr(Лист1!$F$7), называем её(в примере это rCalc). Теперь в проверке данных выбираем тип Другой и пишем: =rCalc Все работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2011, 17:11 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=37361813&tid=2176650]: |
0ms |
get settings: |
6ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
203ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
64ms |
get tp. blocked users: |
1ms |
| others: | 241ms |
| total: | 549ms |

| 0 / 0 |
