|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
20.02.2010, 15:20 | #1 |
Пользователь
Регистрация: 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 ....... И.. ничего, вернее результат есть, считает только по первому условию. Подскажите, где собака порылась |
20.02.2010, 15:29 | #2 |
Форумчанин
Регистрация: 13.01.2010
Сообщений: 410
|
а для Вас есть разница между "вне базы" и "вне базы " ? а для макроса?
И еще один вопрос не по теме - Вы специально пишете код так чтобы в нем было неприятно разбираться? Зачем эта идиотская запись в одну строку? |
20.02.2010, 15:36 | #3 | |
Пользователь
Регистрация: 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 Так лучше? Последний раз редактировалось Pilot; 20.02.2010 в 15:42. |
|
20.02.2010, 15:53 | #4 |
Форумчанин
Регистрация: 13.01.2010
Сообщений: 410
|
ну и что не считается сейчас? вроде все нормально
а почему "вне смен" убрали? |
20.02.2010, 15:59 | #5 | |
Пользователь
Регистрация: 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, 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 это, как я думаю неправильно, но считать надо по двум условиям "УТП" и "вне базы" |
|
20.02.2010, 16:21 | #6 | |
Форумчанин
Регистрация: 13.01.2010
Сообщений: 410
|
ну почему неправильно, все корректно, можете впихнуть столько условий сколько надо. все корректно.
Неправильно то что Вы пока читали конец моего первого сообщения забыли начало. Перечитайте еще раз фразу Цитата:
|
|
20.02.2010, 16:51 | #7 |
Пользователь
Регистрация: 13.11.2007
Сообщений: 33
|
Я понимаю, уважаемый Ваш сарказм. Ясно, что "вне базы" и "вне базы" - условие одинаковое, для студента университета таблица умножения тоже проста, чего не скажешь о воспитаннике детского сада. Я не специалист в VBA, некоторые вещи понятны, некоторые нет, потому и спрашиваю где задано условие (или не задано) и что делать.
|
20.02.2010, 17:18 | #8 |
Форумчанин
Регистрация: 13.01.2010
Сообщений: 410
|
неее. я писал "вне базы" и "вне базы ".
в таблице у Вас "вне базы " (на конце пробел) а ищите Вы "вне базы" (в конце пробела нету) Это две абсолютно разные строки. "вне базы" <> "вне базы " так что у себя в макросе записывайте условие And .Cells(i, 5) = "вне базы " |
20.02.2010, 17:35 | #9 |
Пользователь
Регистрация: 13.11.2007
Сообщений: 33
|
Благодарю, все от невнимательности к мелочам.
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Макрос постоянно обрабатывает события. При открытии другой книги макрос обрывается. | 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 |