Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Do when ... loop / 25 сообщений из 36, страница 1 из 2
04.02.2010, 09:22
    #36448619
tuandreeva
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Do when ... loop
Подскажите, что не так?
В итоге показываент #знач

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Function DVD1()
Dim r As Integer
r =  1 
Dim n As Double
Do While IsNull(Worksheets("Лист1").Cells(r,  1 )) = False
    If Worksheets("Лист1").Cells(r,  1 ).Value < # 1 / 16 / 2009 # And Worksheets("Лист1").Cells(r,  2 ).Value = "DVD" Then
    n = n + Worksheets("Лист1").Cells(r,  3 ).Value
    End If
r = r +  1 
DVD1 = n
Loop
End Function
...
Рейтинг: 0 / 0
04.02.2010, 09:36
    #36448648
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Do when ... loop
Наверное где-то Worksheets("Лист1").Cells(r, 3).Value не цифра.
Попробуйте
Код: plaintext
1.
    n = n + Val(Worksheets("Лист1").Cells(r,  3 ).Value)
...
Рейтинг: 0 / 0
04.02.2010, 09:38
    #36448652
tuandreeva
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Do when ... loop
нет цифра.
Код: plaintext
1.
DVD1 = n
в этом месте все правильно присваивает, а вот в значение функции выдает не правильно
...
Рейтинг: 0 / 0
04.02.2010, 10:03
    #36448721
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Do when ... loop
Например такая упрощённая функция, что выдаст? У меня работает, на выходе 5:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Function DVD2()
Dim r As Integer
Dim n As Double
For r =  1  To  5 
n = n +  1 
Next
DVD2 = n
End Function
...
Рейтинг: 0 / 0
04.02.2010, 10:10
    #36448736
tuandreeva
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Do when ... loop
Hugo121,

и у меня 5
...
Рейтинг: 0 / 0
04.02.2010, 10:18
    #36448754
tuandreeva
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Do when ... loop
Но во в моем примере никак не получаеется
...
Рейтинг: 0 / 0
04.02.2010, 10:25
    #36448773
qwrqwr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Do when ... loop
tuandreeva, а чего эта функция делать-то должна?

Может достаточно будет использовать встроенные типа СУММЕСЛИ и СУММПРОИЗВ ?
Вы расскажите лучше саму задачу - вам тут экселевских формул быстро понапишут :)
...
Рейтинг: 0 / 0
04.02.2010, 10:26
    #36448775
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Do when ... loop
Т.е. если в примере заменить DVD1 на DVD2, то работает? Значит всё же Worksheets("Лист1").Cells(r, 3).Value не число.
...
Рейтинг: 0 / 0
04.02.2010, 10:32
    #36448789
tuandreeva
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Do when ... loop
Hugo121,

Как его превратить в число? Пише CCur(), тоже ошибка
...
Рейтинг: 0 / 0
04.02.2010, 10:45
    #36448830
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Do when ... loop
n = n + Val(Worksheets("Лист1").Cells(r, 3).Value) не помогает?
...
Рейтинг: 0 / 0
04.02.2010, 10:50
    #36448845
tuandreeva
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Do when ... loop
Hugo121,

Нет не помагает
Може все это как-то по другому написаить , но через Do when ... loop
...
Рейтинг: 0 / 0
04.02.2010, 10:56
    #36448867
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Do when ... loop
Не знаю, без примера файла трудно понять, в чём дело. Выложите файл с функцией и данными.
...
Рейтинг: 0 / 0
04.02.2010, 10:59
    #36448876
tuandreeva
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Do when ... loop
не работает сама функция Do wh ... loop
...
Рейтинг: 0 / 0
04.02.2010, 11:00
    #36448880
PlanB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Do when ... loop
tuandreevaнет цифра.
Код: plaintext
1.
DVD1 = n
в этом месте все правильно присваивает, а вот в значение функции выдает не правильноа у вас, простите, функция от чего? :)
...
Рейтинг: 0 / 0
04.02.2010, 11:01
    #36448885
tuandreeva
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Do when ... loop
PlanB,

Не ясен вопрос
...
Рейтинг: 0 / 0
04.02.2010, 11:16
    #36448939
tuandreeva
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Do when ... loop
Не работает в проверке на NULL, как правильно это прописать и сослаться на ""
...
Рейтинг: 0 / 0
04.02.2010, 11:16
    #36448940
PlanB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Do when ... loop
tuandreevaPlanB,

Не ясен вопроскак вы ей пользуетесь, что она возвращает, какое значение?
Код: plaintext
1.
2.
3.
4.
5.
6.
Function Area(Length As Double, Optional Width As Variant)
    If IsMissing(Width) Then
        Area = Length * Length
    Else
        Area = Length * Width
    End If
End Function
если написать =Area(A1), она выдаст результат...
...
Рейтинг: 0 / 0
04.02.2010, 11:23
    #36448966
tuandreeva
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Do when ... loop
PlanBtuandreevaPlanB,

Не ясен вопроскак вы ей пользуетесь, что она возвращает, какое значение?
Код: plaintext
1.
2.
3.
4.
5.
6.
Function Area(Length As Double, Optional Width As Variant)
    If IsMissing(Width) Then
        Area = Length * Length
    Else
        Area = Length * Width
    End If
End Function
если написать =Area(A1), она выдаст результат...
Через пользовательские функции
...
Рейтинг: 0 / 0
04.02.2010, 11:23
    #36448967
f
f
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Do when ... loop
tuandreeva, вы отладчиком умеете пользоваться? Сделайте точки останова и посмотрите, что у вас в ячейках и что в переменных.

Чем дальше в лес, тем тупее программисты.
...
Рейтинг: 0 / 0
04.02.2010, 11:25
    #36448975
Edkonst2008
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Do when ... loop
tuandreevaНе работает в проверке на NULL, как правильно это прописать и сослаться на ""

Так не пробовали?

Код: plaintext
Do While Worksheets("Лист").Cells(r,  1 ) <> ""
...
Рейтинг: 0 / 0
04.02.2010, 11:26
    #36448981
tuandreeva
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Do when ... loop
Edkonst2008,
Берет только 1 значение
в моем распоряжении 15 минут!!
...
Рейтинг: 0 / 0
04.02.2010, 11:39
    #36449025
PlanB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Do when ... loop
tuandreevaEdkonst2008,
Берет только 1 значение
в моем распоряжении 15 минут!!у меня работает, не знаю, как у вас.
в приложении вариант формулой...если угадал, конечно
...
Рейтинг: 0 / 0
04.02.2010, 11:40
    #36449033
PlanB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Do when ... loop
tuandreevaБерет только 1 значениеа во второй ячейке не пусто-ли?
...
Рейтинг: 0 / 0
04.02.2010, 11:55
    #36449102
Ser Artur
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Do when ... loop
Вы толком обьясните, что должен делать макрос ПРИ ЗАПУСКЕ. Возможно есть другие пути решения
При решении задачи найдется самое красивое, не правильное решение
...
Рейтинг: 0 / 0
04.02.2010, 11:59
    #36449123
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Do when ... loop
Работает
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Function DVD3()
Dim r As Integer
r =  1 
Dim n As Double
Do While Worksheets("Лист1").Cells(r,  1 ) <> ""
    If Worksheets("Лист1").Cells(r,  1 ).Value < # 1 / 16 / 2009 # And Worksheets("Лист1").Cells(r,  2 ).Value = "DVD" Then
    n = n + Val(Worksheets("Лист1").Cells(r,  3 ).Value)
    End If
r = r +  1 
Loop
DVD3 = n
End Function
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Do when ... loop / 25 сообщений из 36, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]