Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.03.2009, 17:48   #1
SoFuWa
Пользователь
 
Регистрация: 14.08.2008
Сообщений: 64
По умолчанию Цикл в скрипте

Простенький вопрос, есть цикл который проходит по ячейкам, как определить что значения кончились и ячейка пустая и завершить цикл сразу же.
SoFuWa вне форума Ответить с цитированием
Старый 21.03.2009, 18:00   #2
Slavik
Форумчанин
 
Регистрация: 23.11.2008
Сообщений: 237
По умолчанию

Не совсем понял, что вы имеете ввиду; возможно попробуйте в формуле использовать функцию "ЕСЛИ" (в меню ВСТВКА) , выведите данные в следующую ячейку если значения не кончились, а если закончились — в другую. Если информация пригодилась, можете добавить отзыв.
Если мой ответ вам понравился, поставьте позитивный отзыв
Slavik вне форума Ответить с цитированием
Старый 21.03.2009, 18:38   #3
SoFuWa
Пользователь
 
Регистрация: 14.08.2008
Сообщений: 64
По умолчанию

нет я не про то спрашивал, я вообще про скрипт т.е VBA. Но я уже разобрался, точнее помогли ))
Если подскажите, то поставлю отзыв =)) почему в строке

ColumnA = Объекты.Cells(P, 1).Value

Екзель ругается на Объекты если написать

ColumnA = Cells(P, 1).Value

то все работает. Пишет что обьект requied т.е. требуется, но такой лист есть он называется Объекты

Последний раз редактировалось SoFuWa; 21.03.2009 в 18:47.
SoFuWa вне форума Ответить с цитированием
Старый 21.03.2009, 19:07   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

ColumnA = Sheets("Объекты").Cells(P, 1).Value
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 21.03.2009, 19:44   #5
SoFuWa
Пользователь
 
Регистрация: 14.08.2008
Сообщений: 64
По умолчанию

Спасибо так работает.

Я цикл переделал, а он не работает тоже

вот такой код
Sub счетчик()
Dim NumberMain As Integer
Dim Owners As Integer
Dim Intermediaries As Integer
Dim ColumnA As Variant
Dim ColumnP As Variant
Dim ColumnQ As Variant

NumberMain = 0
Owners = 0
Intermediaries = 0

For P = 1 To 100000
ColumnA = Cells(P, 1).Value
If IsEmpty(ColumnA) Then P = 100000 Else NumberMain = NumberMain + 1
Next P

For o = 1 To 100000
ColumnP = Cells(o, 16).Value
If IsEmpty(ColumnP) Then o = 100000 Else Owners = Owners + 1
Next o

For k = 1 To 100000
ColumnQ = Cells(k, 17).Value
If IsEmpty(ColumnQ) Then k = 100000 Else Intermediaries = Intermediaries + 1
Next k

End Sub

Я таким способом сделал, чтоб определялись пустые ячейки. Но при запуске никакого эффекта, раньше было через for и все работало, а теперь вообще не работает, комп даже не задумывается, а там работы на несколько минут БД большая. Помогите пожалуста
SoFuWa вне форума Ответить с цитированием
Старый 21.03.2009, 20:29   #6
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Вот это:
Код:
Sub ИсходныйКод()
    For P = 1 To 100000
        ColumnA = Cells(P, 1).Value
        If IsEmpty(ColumnA) Then P = 100000 Else NumberMain = NumberMain + 1
    Next P
End Sub
можно (и нужно) заменить на что-то вроде такого:
Код:
Sub НормальныйКод()
    ' ищем число заполненных ячеек в столбце A (оно равно НомеруПоследнейЗаполненнойСтроки)
    НомерПоследнейЗаполненнойСтроки = Columns("A").Cells(Rows.Count).End(xlUp).Row
    ЗначениеПоследнейЗаполненнойЯчейки = Columns("A").Cells(Rows.Count).End(xlUp)
End Sub
Или, что то же самое,
Код:
Sub НормальныйКод()
    НомерПоследнейЗаполненнойСтроки = Cells(Rows.Count, "A").End(xlUp).Row
    ЗначениеПоследнейЗаполненнойЯчейки = Cells(Rows.Count, "A").End(xlUp)
End Sub

Последний раз редактировалось EducatedFool; 21.03.2009 в 20:32.
EducatedFool вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помощь в скрипте Eretic JavaScript, Ajax 5 02.12.2008 14:48
Помощь в скрипте Kreaman PHP 5 29.11.2008 20:27
Ошибка в скрипте Qsajeal PHP 11 03.06.2008 12:22
Цикл с предусловием. ( цикл while) Цикл с постусловием. (цикл repeat ... until) Mr.User Помощь студентам 9 23.11.2007 01:34