
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
09.08.2006, 15:52:55
|
|||
|---|---|---|---|
|
|||
Excel, VBA - сравнение содержимого в TextBox |
|||
|
#18+
Добрый день всем! Я работаю в Excel и создала окошко (UserForm) для заполнения в ней некоторой информации. Никто не сталкивался со сравнением значений TextBox в форме? Код примерно такой: Код: plaintext 1. 2. 3. То есть если пользователь вводит USLR меньше UCLR, я его насильно делаю на один процент выше UCLR. Проблема в сравнении. В TextBox'ах информация должна быть в текстовой форме, я так полагаю . То есть, когда я получаю заполненные юзером циферки и посылаю их на лист Эксель, все конвертируется в цифровой формат автоматически, так как потом сложения и вычитания проходят корректно. Но вот беда: не могу я произвести корректно сравнение в VBA среде. Он не видит, что 99<100 и рассматривает 100 как меньшее число(ну, в общем, число знаков в цифре неодинаковое = дает не правильный результат сравнения). Когда же я насильно конвертирую содержание текстовой ячейки в форме, он мне вообще неизвестно что выдает... Пробовала Код: plaintext Так какой же тип данных в этих TextBox и какую функцию можно использовать, чтобы представить их содержимое как числа и правильно их сравнивать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.08.2006, 16:09:52
|
|||
|---|---|---|---|
|
|||
Excel, VBA - сравнение содержимого в TextBox |
|||
|
#18+
Тебе нужно воспользоваться одной из функций преобразования типов: CInt, CLng, CSng, CDbl. Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.08.2006, 16:51:08
|
|||
|---|---|---|---|
|
|||
Excel, VBA - сравнение содержимого в TextBox |
|||
|
#18+
Ура! Работает! Спасибо огромное!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.08.2006, 17:57:44
|
|||
|---|---|---|---|
|
|||
Excel, VBA - сравнение содержимого в TextBox |
|||
|
#18+
Только у меня теперь другая проблема. Не понимаю почему... Когда цыфры в TextBox берутся из ячеек эксель, а не вводятся пользователем, мне выдается ошибка в строке сравнения (Type mismatch): Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.08.2006, 18:17:30
|
|||
|---|---|---|---|
|
|||
Excel, VBA - сравнение содержимого в TextBox |
|||
|
#18+
Вернее не Код: plaintext 1. 2. Код: plaintext 1. 2. (где в UCLxDin считается результат по формуле, но представлен в той же числовой форме, что и USLX) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.08.2006, 18:37:50
|
|||
|---|---|---|---|
Excel, VBA - сравнение содержимого в TextBox |
|||
|
#18+
Stagiereмне выдается ошибка в строке сравнения (Type mismatch):Сравнение здесь не при чем. Это сам CSng так ругается если не смог преобразовать текст в число. Вариант 1: Замени CSng на Val. Тогда текст не распознаный как число будет превращаться в ноль без ругани. Вариант 2: Воспользуйся перехватом ошибок ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.08.2006, 14:02:01
|
|||
|---|---|---|---|
|
|||
Excel, VBA - сравнение содержимого в TextBox |
|||
|
#18+
Спасибо за советы, начало работать(странно, это же вчера не работало) А можно поподробнее с перехватом ошибок? Не подскажете, чтобы учесть так же негативные значения, какую можно функцию в VBA использовать, ну, типа IsNegative() (не нашла такой). Или если она не существует, то как написать функцию, которая возвращала бы число. Так как "return a" не распознает: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Как правильно записать строчку с возвращением? P.S.Никто не в курсе, есть ли в VBA такая функция, которая могла бы распознавать размер экрана, как, например, в Java? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.08.2006, 14:48:04
|
|||
|---|---|---|---|
|
|||
Excel, VBA - сравнение содержимого в TextBox |
|||
|
#18+
IsNegative - нет такой функции. Можешь так сделать. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Или следующим образом. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Или еще так можно определить отрицательное число. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Под размером ты подразумеваешь разрешение экрана? Тогда воспользуйся функцией Win API GetSystemMetrics. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=61&mobile=1&tid=2184486]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
21ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 215ms |
| total: | 318ms |

| 0 / 0 |
