![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 15.05.2009
Сообщений: 4
|
![]()
Проблема заключается в том, что я не могу найти ошибку алгоритма. В первый раз полной отладки программа считала числа до 24 знаков без ошибок, но на следующий день начала преобразовывать автоматически в ячейке такое число в экспоненциальное и считать отказывалось, выдавая Type mismatch (смена типа ячейки не помогло). В VBA я толком и не работаю, поэтому плохо представляю, в чем там дело, кто сможет, помогите)
Алгоритм: Код:
|
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 03.04.2009
Сообщений: 412
|
![]()
Ячейка не должна быть пустой. Задайте в начале цикла проверку.
|
![]() |
![]() |
![]() |
#3 |
Регистрация: 15.05.2009
Сообщений: 4
|
![]()
Подразумевается, что первоначально пустой она быть не может (то есть, сначала все ячейки заполняются. Значения берутся от 0.
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 03.04.2009
Сообщений: 412
|
![]()
Type mismatch выдаётся когда ячейка пуста, число меньше 0 или представлено не в виде последовательности цифр. Сделайте формат ячеек текстовым и заполните диапазон. Число не будет переводится в экспоненту и Ваш код будет работать.
|
![]() |
![]() |
![]() |
#5 | |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]()
Могу предложить несколько иной алгоритм:
Код:
Цитата:
|
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 03.04.2009
Сообщений: 412
|
![]()
EducatedFool, остаётся проблема Type mismatch при большом количестве цифр в числе (от 15 и больше).
|
![]() |
![]() |
![]() |
#7 | |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]() Цитата:
Только она проявляется не из-за большого числа цифр в числах, а из-за ограничения длины вычисляемой строки в функции Application.Evaluate(s) Вот так работает нормально (проверял на числах, состоящих из 30 цифр): Код:
|
|
![]() |
![]() |
![]() |
#8 | |
Регистрация: 15.05.2009
Сообщений: 4
|
![]() Цитата:
EducatedFool, я наверное, не совсем правильно сформулировала задачу. Имелось в виду, что в диапазоне в каждой ячейке лежит число и сумму цифр числа надо считать конкретно каждой ячейки и выводить в соседнюю. Например, в диапазоне с2:с10 лежат в каждой ячейке определенные числа, тогда сумма цифр числа с2 (при выполнение программы) отображается в d2, сумма цифр числа c3 в d3 и так далее. |
|
![]() |
![]() |
![]() |
#9 | |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]() Цитата:
Код:
Или в программный модуль добавьте пользовательскую функцию: Код:
=СуммаЦифр(C2) |
|
![]() |
![]() |
![]() |
#10 |
Регистрация: 15.05.2009
Сообщений: 4
|
![]()
EducatedFool, все, теперь работает как надо, большое спасибо!)))Теперь можно наконец-то закончить эту несчастную базу данных)))спасибо ещё раз^^
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сумма цифр введенного трехзначного числа. Дельфи | by -ORTODOX- | Помощь студентам | 20 | 02.02.2011 14:21 |
Сумма цифр числа... | Dimak67 | Microsoft Office Excel | 5 | 09.04.2010 00:46 |
сумма цифр целого числа | mihsel | Microsoft Office Excel | 8 | 13.04.2009 13:57 |
Сформировать вектор Х из тех элементов вектора А, сумма цифр которых в десятичной записи больше заданного | Dimati87 | Помощь студентам | 1 | 06.03.2009 14:36 |
Натуральное число, в записи которого п цифр, называется числом Армстронга, если сумма его цифр, возведенн | OTLi4HO | Общие вопросы C/C++ | 6 | 14.01.2009 19:48 |