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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.07.2010, 13:56   #1
segail
Форумчанин
 
Регистрация: 13.06.2009
Сообщений: 691
По умолчанию сгруппировать код

Здравствуйте.
Подскажите, можно как-то сгруппировать данный код?
То есть сделать более уплотненным.
Код:
                If .Cells(i + 35, 21) > 0 Or .Cells(i + 72, 21) > 0 _
                And .Cells(i + 109, 21) > 0 Or .Cells(i + 146, 21) > 0 _
                And .Cells(i + 183, 21) > 0 Or .Cells(i + 220, 21) > 0 _
                And .Cells(i + 257, 21) > 0 Or .Cells(i + 294, 21) > 0 _
                And .Cells(i + 331, 21) > 0 Or.Cells(i + 368, 21) > 0 _
                And .Cells(i + 405, 21) > 0 Or.Cells(i + 442, 21) > 0 Then
segail вне форума Ответить с цитированием
Старый 02.07.2010, 14:27   #2
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Возможно этот вариант подойдет
Код:
Dim d As Boolean,d1 As Boolean
For n = 35 To 405 Step 74
d1 = CBool(.Cells(i + n, 21) > 0) + CBool(.Cells(i + n + 37, 21) > 0)
d = d * d1
Next
If d = True Then
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 02.07.2010, 14:46   #3
segail
Форумчанин
 
Регистрация: 13.06.2009
Сообщений: 691
По умолчанию

Полностью код выглядит так:
Код:
Public Sub Test()
    Dim i As Integer
    For i = 1 To 450
        With Sheets("Отчет")
            If Form_SelectDate.ComboBox_Month = CStr(.Cells(i, 27).Text) Or UserForm4.ComboBox1.Text = CStr(.Cells(i, 27).Text) Then
                If .Cells(i + 35, 21) > 0 Or .Cells(i + 72, 21) > 0 _
                And .Cells(i + 109, 21) > 0 Or .Cells(i + 146, 21) > 0 _
                And .Cells(i + 183, 21) > 0 Or .Cells(i + 220, 21) > 0 _
                And .Cells(i + 257, 21) > 0 Or .Cells(i + 294, 21) > 0 _
                And .Cells(i + 331, 21) > 0 Or.Cells(i + 368, 21) > 0 _
                And .Cells(i + 405, 21) > 0 Or.Cells(i + 442, 21) > 0 Then
                    MsgBox "!!!", 16, "!!!"
                End If
            End If
        End With
    Next
End Sub
переменная i основная для всего кода, переменная n не определяется…
segail вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Код С++ KennyMccormickSP Общие вопросы C/C++ 5 10.05.2010 23:49
Формулы массива или сгруппировать данные kzld Microsoft Office Excel 10 30.11.2009 18:59
Запрос: Сгруппировать остатки по периодам Black_Guardian SQL, базы данных 14 03.08.2009 15:02
Код игры на Паскале и на Делфи сильно отличается? Как переписать код с Паскаля в Делфи? Mclaren Помощь студентам 2 27.04.2009 22:37
Код на C++ Иллидан Общие вопросы Delphi 1 08.10.2008 14:02