Добрый день! Есть несколько вариантов условий (в каждом варианте существует несколько аргументов), каждый последующий вариант условия дублирует предыдущий (убирается один из аргументов). Как правильно записать код, что бы если для первого вариантов условий аргументов не достаточно выполнялось второе, если для второго не достаточно, выполнялось третье. Код ниже. Заранее большое спасибо.
Код
If ДанныеМарка = ПланМарка And ДанныеТонн - Точность <= ПланТонн And ДанныеТонн + Точность >= ПланТонн And ДанныеВремяГода = ПланВремяГода And ДанныеВремя = ПланВремя Then
Worksheets("Временная таблица").Cells(k, 1) = Worksheets("Данные").Cells(i2, 3)
If Worksheets("Данные").Cells(i2, 3) > 5.6 Then
Сумма = Сумма + Worksheets("Данные").Cells(i2, 3)
Количество = Количество + 1
End If
k = k + 1
End If
If ДанныеМарка = ПланМарка And ДанныеТонн - Точность <= ПланТонн And ДанныеТонн + Точность >= ПланТонн And ДанныеВремяГода = ПланВремяГода Then
Worksheets("Временная таблица").Cells(k, 1) = Worksheets("Данные").Cells(i2, 3)
If Worksheets("Данные").Cells(i2, 3) > 5.6 Then
Сумма = Сумма + Worksheets("Данные").Cells(i2, 3)
Количество = Количество + 1
End If
k = k + 1
End If
If ДанныеМарка = ПланМарка And ДанныеТонн - Точность <= ПланТонн And ДанныеТонн + Точность >= ПланТонн Then
Worksheets("Временная таблица").Cells(k, 1) = Worksheets("Данные").Cells(i2, 3)
If Worksheets("Данные").Cells(i2, 3) > 5.6 Then
Сумма = Сумма + Worksheets("Данные").Cells(i2, 3)
Количество = Количество + 1
End If
k = k + 1
End If
If ДанныеМарка = ПланМарка Then
Worksheets("Временная таблица").Cells(k, 1) = Worksheets("Данные").Cells(i2, 3)
If Worksheets("Данные").Cells(i2, 3) > 5.6 Then
Сумма = Сумма + Worksheets("Данные").Cells(i2, 3)
Количество = Количество + 1
End If
k = k + 1
End If
If ДанныеМарка = ПланМарка Then
If ДанныеТонн - Точность <= ПланТонн And ДанныеТонн + Точность >= ПланТонн Then
If ДанныеВремяГода = ПланВремяГода Then
If ДанныеВремя = ПланВремя Then
' code 1
end if
' code 2
end if
' code 3
end if
' code 4
end if
Возможно нужно пересмотреть весь алгоритм, но без примера это гадание на кофейной гуще. Не понятно почему при выполнении разных условий выполняется одно и тоже действие:
Код
Worksheets("Временная таблица").Cells(k, 1) = Worksheets("Данные").Cells(i2, 3)
If Worksheets("Данные").Cells(i2, 3) > 5.6 Then
Сумма = Сумма + Worksheets("Данные").Cells(i2, 3)
Количество = Количество + 1
End If
k = k + 1
Попробуйте перед каждым End If (после k = k + 1) добавить Exit Sub или Exit For или Exit Do в зависимости от кода, тогда при выполнении условия будет осуществляться выход, либо из процедуры, либо из цикла, или начинайте проверку с меньшего условия к большему