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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.02.2010, 15:20   #1
Pilot
Пользователь
 
Регистрация: 13.11.2007
Сообщений: 33
По умолчанию Добавить условие в макрос

Уважаемое сообщество!
Есть макрос:
Sub flying_shifts()
Dim i As Long, acontrol As Date, icounter As Long
Application.ScreenUpdating = False: With Sheets("ХРОНОМЕТРАЖ")
For i = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
If .Cells(i, 5) = "УТП" And .Cells(i, 1) <> acontrol And .Cells(i, 1) >= Sheets("Лист2").Cells(6, 4) _
And .Cells(i, 1) <= Sheets("Лист2").Cells(6, 6) Then
acontrol = .Cells(i, 1): icounter = icounter + 1: End If: Next: End With: Sheets("Лист2").Cells(14, 7) = icounter
Application.ScreenUpdating = True: End Sub

Добавляю условие:
....
If .Cells(i, 5) = "УТП" And .Cells(i, 29) = "вне базы" And .Cells(i, 1) <> acontrol .......

И.. ничего, вернее результат есть, считает только по первому условию.
Подскажите, где собака порылась
Вложения
Тип файла: zip Книга1_flying_shifts.zip (263.7 Кб, 14 просмотров)
Pilot вне форума Ответить с цитированием
Старый 20.02.2010, 15:29   #2
Dophin
Форумчанин
 
Аватар для Dophin
 
Регистрация: 13.01.2010
Сообщений: 410
По умолчанию

а для Вас есть разница между "вне базы" и "вне базы " ? а для макроса?

И еще один вопрос не по теме - Вы специально пишете код так чтобы в нем было неприятно разбираться? Зачем эта идиотская запись в одну строку?
Dophin вне форума Ответить с цитированием
Старый 20.02.2010, 15:36   #3
Pilot
Пользователь
 
Регистрация: 13.11.2007
Сообщений: 33
По умолчанию

Цитата:
Сообщение от Dophin Посмотреть сообщение
а для Вас есть разница между "вне базы" и "вне базы " ? а для макроса?

И еще один вопрос не по теме - Вы специально пишете код так чтобы в нем было неприятно разбираться? Зачем эта идиотская запись в одну строку?
Sorry, не спец я, потому и спрашиваю.

Sub flying_shifts()
Dim i As Long, acontrol As Date, icounter As Long
Application.ScreenUpdating = False
With Sheets("ХРОНОМЕТРАЖ")
For i = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
If .Cells(i, 5) = "УТП" And .Cells(i, 1) <> acontrol And .Cells(i, 1) >= Sheets("Лист2").Cells(6, 4) _
And .Cells(i, 1) <= Sheets("Лист2").Cells(6, 6) Then
acontrol = .Cells(i, 1): icounter = icounter + 1:
End If
Next
End With
Sheets("Лист2").Cells(14, 7) = icounter
Application.ScreenUpdating = True
End Sub
Так лучше?

Последний раз редактировалось Pilot; 20.02.2010 в 15:42.
Pilot вне форума Ответить с цитированием
Старый 20.02.2010, 15:53   #4
Dophin
Форумчанин
 
Аватар для Dophin
 
Регистрация: 13.01.2010
Сообщений: 410
По умолчанию

ну и что не считается сейчас? вроде все нормально

а почему "вне смен" убрали?
Dophin вне форума Ответить с цитированием
Старый 20.02.2010, 15:59   #5
Pilot
Пользователь
 
Регистрация: 13.11.2007
Сообщений: 33
По умолчанию

Цитата:
Сообщение от Dophin Посмотреть сообщение
ну и что не считается сейчас? вроде все нормально

а почему "вне смен" убрали?
поторопился

Sub flying_shifts()
Dim i As Long, acontrol As Date, icounter As Long
Application.ScreenUpdating = False
With Sheets("ХРОНОМЕТРАЖ")
For i = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
If .Cells(i, 5) = "УТП" And .Cells(i, 5) = "вне базы" And .Cells(i, 1) <> acontrol And .Cells(i, 1) >= Sheets("Лист2").Cells(6, 4) _
And .Cells(i, 1) <= Sheets("Лист2").Cells(6, 6) Then
acontrol = .Cells(i, 1): icounter = icounter + 1:
End If
Next
End With
Sheets("Лист2").Cells(14, 7) = icounter
Application.ScreenUpdating = True
End Sub

это, как я думаю неправильно, но считать надо по двум условиям "УТП" и "вне базы"
Pilot вне форума Ответить с цитированием
Старый 20.02.2010, 16:21   #6
Dophin
Форумчанин
 
Аватар для Dophin
 
Регистрация: 13.01.2010
Сообщений: 410
По умолчанию

ну почему неправильно, все корректно, можете впихнуть столько условий сколько надо. все корректно.

Неправильно то что Вы пока читали конец моего первого сообщения забыли начало. Перечитайте еще раз фразу
Цитата:
а для Вас есть разница между "вне базы" и "вне базы " ? а для макроса?
Если не получится - перечитайте еще раз внимательно
Dophin вне форума Ответить с цитированием
Старый 20.02.2010, 16:51   #7
Pilot
Пользователь
 
Регистрация: 13.11.2007
Сообщений: 33
По умолчанию

Цитата:
Сообщение от Dophin Посмотреть сообщение
ну почему неправильно, все корректно, можете впихнуть столько условий сколько надо. все корректно.

Неправильно то что Вы пока читали конец моего первого сообщения забыли начало. Перечитайте еще раз фразу

Если не получится - перечитайте еще раз внимательно
Я понимаю, уважаемый Ваш сарказм. Ясно, что "вне базы" и "вне базы" - условие одинаковое, для студента университета таблица умножения тоже проста, чего не скажешь о воспитаннике детского сада. Я не специалист в VBA, некоторые вещи понятны, некоторые нет, потому и спрашиваю где задано условие (или не задано) и что делать.
Pilot вне форума Ответить с цитированием
Старый 20.02.2010, 17:18   #8
Dophin
Форумчанин
 
Аватар для Dophin
 
Регистрация: 13.01.2010
Сообщений: 410
По умолчанию

неее. я писал "вне базы" и "вне базы ".

в таблице у Вас "вне базы " (на конце пробел) а ищите Вы "вне базы" (в конце пробела нету)

Это две абсолютно разные строки. "вне базы" <> "вне базы "

так что у себя в макросе записывайте условие And .Cells(i, 5) = "вне базы "
Dophin вне форума Ответить с цитированием
Старый 20.02.2010, 17:35   #9
Pilot
Пользователь
 
Регистрация: 13.11.2007
Сообщений: 33
По умолчанию

Благодарю, все от невнимательности к мелочам.
Pilot вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос постоянно обрабатывает события. При открытии другой книги макрос обрывается. Ples Microsoft Office Excel 8 17.12.2016 18:15
условие Maka111 Microsoft Office Excel 5 17.05.2009 18:25
условие Neymexa Общие вопросы по Java, Java SE, Kotlin 2 07.02.2009 11:37
Условие(If then) Andreyka Общие вопросы Delphi 3 12.01.2009 15:30