|
|
|
Excel, VBA - сравнение содержимого в TextBox
|
|||
|---|---|---|---|
|
#18+
Добрый день всем! Я работаю в Excel и создала окошко (UserForm) для заполнения в ней некоторой информации. Никто не сталкивался со сравнением значений TextBox в форме? Код примерно такой: Код: plaintext 1. 2. 3. То есть если пользователь вводит USLR меньше UCLR, я его насильно делаю на один процент выше UCLR. Проблема в сравнении. В TextBox'ах информация должна быть в текстовой форме, я так полагаю . То есть, когда я получаю заполненные юзером циферки и посылаю их на лист Эксель, все конвертируется в цифровой формат автоматически, так как потом сложения и вычитания проходят корректно. Но вот беда: не могу я произвести корректно сравнение в VBA среде. Он не видит, что 99<100 и рассматривает 100 как меньшее число(ну, в общем, число знаков в цифре неодинаковое = дает не правильный результат сравнения). Когда же я насильно конвертирую содержание текстовой ячейки в форме, он мне вообще неизвестно что выдает... Пробовала Код: plaintext Так какой же тип данных в этих TextBox и какую функцию можно использовать, чтобы представить их содержимое как числа и правильно их сравнивать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2006, 15:52:55 |
|
||
|
Excel, VBA - сравнение содержимого в TextBox
|
|||
|---|---|---|---|
|
#18+
Тебе нужно воспользоваться одной из функций преобразования типов: CInt, CLng, CSng, CDbl. Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2006, 16:09:52 |
|
||
|
Excel, VBA - сравнение содержимого в TextBox
|
|||
|---|---|---|---|
|
#18+
Ура! Работает! Спасибо огромное!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2006, 16:51:08 |
|
||
|
Excel, VBA - сравнение содержимого в TextBox
|
|||
|---|---|---|---|
|
#18+
Только у меня теперь другая проблема. Не понимаю почему... Когда цыфры в TextBox берутся из ячеек эксель, а не вводятся пользователем, мне выдается ошибка в строке сравнения (Type mismatch): Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2006, 17:57:44 |
|
||
|
Excel, VBA - сравнение содержимого в TextBox
|
|||
|---|---|---|---|
|
#18+
Вернее не Код: plaintext 1. 2. Код: plaintext 1. 2. (где в UCLxDin считается результат по формуле, но представлен в той же числовой форме, что и USLX) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2006, 18:17:30 |
|
||
|
Excel, VBA - сравнение содержимого в TextBox
|
|||
|---|---|---|---|
|
#18+
Stagiereмне выдается ошибка в строке сравнения (Type mismatch):Сравнение здесь не при чем. Это сам CSng так ругается если не смог преобразовать текст в число. Вариант 1: Замени CSng на Val. Тогда текст не распознаный как число будет превращаться в ноль без ругани. Вариант 2: Воспользуйся перехватом ошибок ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2006, 18:37:50 |
|
||
|
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:02:01 |
|
||
|
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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2006, 14:48:04 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=33910839&tid=2184486]: |
0ms |
get settings: |
7ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
72ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
29ms |
get tp. blocked users: |
1ms |
| others: | 240ms |
| total: | 371ms |

| 0 / 0 |
