|
Преобразование типов в VBA MS Excel 2010
|
|||
---|---|---|---|
#18+
Здравствуйте, недавно занялся VBA и прошу помощи, так как самому найти ошибку в своём коде у меня не получилось. код следующий: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
ошибка возникает вот такая: Run-time error '13': Type mismatch При нажатии на кнопку Debug ссылается на строку кода: Код: vbnet 1.
Предполагаю, что все четыре строки кода, содержащие функцию CDbl выдадут аналогичную ошибку. Поясню также, что текстовое поле и три лейбла содержат цифры от 0 до 20 (целые, дробей нет, пробовал использовать функцию CInt, та же ошибка). Задача в пятом лейбле выводить сумму цифр, указанных в tbx_roll_musculature, lbl_race_mod_musculature, lbl_class_mod_musculature, lbl_const_mod_musculature. Тестирование провожу при значениях полей 0, 1, 0, 0 соответственно. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2012, 01:17 |
|
Преобразование типов в VBA MS Excel 2010
|
|||
---|---|---|---|
#18+
Чтение - великая сила: Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2012, 01:21 |
|
Преобразование типов в VBA MS Excel 2010
|
|||
---|---|---|---|
#18+
AndreTM, видимо собака порылась не тут, так как ошибка не ушла несмотря на то, что сделал как вы сказали (правда изменил double на integer): Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2012, 03:23 |
|
Преобразование типов в VBA MS Excel 2010
|
|||
---|---|---|---|
#18+
Странно... А если просто Val() использовать? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2012, 05:22 |
|
Преобразование типов в VBA MS Excel 2010
|
|||
---|---|---|---|
#18+
AndreTM, Val вместо CInt? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2012, 09:47 |
|
Преобразование типов в VBA MS Excel 2010
|
|||
---|---|---|---|
#18+
AndreTM, Val заработало, но вопрос остался, почему не отработали специальные функции? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2012, 09:53 |
|
Преобразование типов в VBA MS Excel 2010
|
|||
---|---|---|---|
#18+
Dmitry SolovyovAndreTM, Val заработало, но вопрос остался, почему не отработали специальные функции?Для ответа на вопрос надо знать, что содержали переменные на момент преобразования. может там были пробелы(внутри числа, спереди или сзади; разделитель, отличный от запятой - например точка). Может еще какой признак текста, который не применим к типу Double. Напишите, какое значение имеют переменные на момент преобрразования - тогда и ответ будет. Для инфо: тип Integer не может содержать числа, более 32768 и менее -32768. Тоже может вызвать ошибку. Лучше объявлять As Long или As Double, раз Вы именно в тип Double преобразуете. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2012, 10:12 |
|
Преобразование типов в VBA MS Excel 2010
|
|||
---|---|---|---|
#18+
The_Prist, Всё просто: все входящие значения - 0, 1, 0, 0. Изначально при суммировании получал: 0100, так как строка. Затем стал преобразовывать значения в интеджер/дабл (пробовал и так, и так). Помог ток Val ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2012, 11:51 |
|
Преобразование типов в VBA MS Excel 2010
|
|||
---|---|---|---|
#18+
Dmitry SolovyovThe_Prist, Всё просто: все входящие значения - 0, 1, 0, 0. Изначально при суммировании получал: 0100, так как строка. Затем стал преобразовывать значения в интеджер/дабл (пробовал и так, и так). Помог ток ValПо опыту: явно проблема во входных данных. Выложили бы Вы проект или часть(я имею ввиду файл, а не код) - тогда было бы точно понятно, где проблема. Не может быть, чтобы целые числа поддавались преобразованию только через Val. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2012, 12:13 |
|
Преобразование типов в VBA MS Excel 2010
|
|||
---|---|---|---|
#18+
Dmitry Solovyov, Конкретный ответ дайте - чему равна переменная str_roll_musculature в момент когда возникла ошибка. Прямо из immediate в момент ошибки, а не домыслы. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2012, 12:17 |
|
Преобразование типов в VBA MS Excel 2010
|
|||
---|---|---|---|
#18+
Shocker.ProDmitry Solovyov, Конкретный ответ дайте - чему равна переменная str_roll_musculature в момент когда возникла ошибка. Прямо из immediate в момент ошибки, а не домыслы. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2012, 12:59 |
|
Преобразование типов в VBA MS Excel 2010
|
|||
---|---|---|---|
#18+
Как это узнать? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2012, 12:59 |
|
Преобразование типов в VBA MS Excel 2010
|
|||
---|---|---|---|
#18+
Когда возникла ошибка, нажать Debug строка roll_musculature = CDbl(str_roll_musculature) будет покрашена желтым нажать Ctrl+G В окне Immediate написать ?str_roll_musculature и нажать Enter Скопировать результат и выложить ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2012, 13:11 |
|
Преобразование типов в VBA MS Excel 2010
|
|||
---|---|---|---|
#18+
Shocker.Pro, пишет: --------------------------- Microsoft Visual Basic for Applications --------------------------- Compile error: Expected Sub, Function, or Property --------------------------- ОК Справка --------------------------- ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2012, 15:03 |
|
Преобразование типов в VBA MS Excel 2010
|
|||
---|---|---|---|
#18+
Какая строка у вас в ЭТОТ момент покрашена желтым? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2012, 15:06 |
|
Преобразование типов в VBA MS Excel 2010
|
|||
---|---|---|---|
#18+
Shocker.Pro, roll_musculature = CInt(str_roll_musculature) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2012, 15:31 |
|
Преобразование типов в VBA MS Excel 2010
|
|||
---|---|---|---|
#18+
отлично, что видно, если навести курсор на str_roll_musculature? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2012, 16:06 |
|
Преобразование типов в VBA MS Excel 2010
|
|||
---|---|---|---|
#18+
Shocker.Pro, str_roll_musculature="" ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2012, 23:56 |
|
Преобразование типов в VBA MS Excel 2010
|
|||
---|---|---|---|
#18+
Ну так о чем и речь, пытаешься преобразовать пустую строку в Int - естественно выдается ошибка. При этом Val преобразует пустую строку в 0, поэтому ошибки нет, но и смысла тоже нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2012, 01:40 |
|
Преобразование типов в VBA MS Excel 2010
|
|||
---|---|---|---|
#18+
Вот это прочти , может помочь. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2012, 01:41 |
|
|
start [/forum/topic.php?desktop=1&fid=61&tid=2175208]: |
0ms |
get settings: |
12ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
27ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
others: | 339ms |
total: | 467ms |
0 / 0 |