В настоящее время я работаю над калькулятором надежности, и в рамках более широкого расчета требуется следующее l oop:
'Add redundant units to any pieces of equipment with reliabilites lower than target
'Set Variables
DatRange = Worksheets(system).ListObjects("Table_" & system).ListColumns("Reliability of Configuration").DataBodyRange
minVal = Application.WorksheetFunction.Min(DatRange)
Do Until minVal > Target_Reliability
'Identify row of min value
Row = Application.WorksheetFunction.Match(minVal, DatRange, 0)
'Add redundancy to relevant row
quantity_fitted = Worksheets(system).ListObjects("Table_" & system).ListColumns("Quantity Fitted (n)").DataBodyRange(Row)
Worksheets(system).ListObjects("Table_" & system).ListColumns("Quantity Fitted (n)").DataBodyRange(Row) = quantity_fitted + 1
'Prime for next loop
DatRange = Worksheets(system).ListObjects("Table_" & system).ListColumns("Reliability of Configuration").DataBodyRange
minVal = Application.WorksheetFunction.Min(DatRange)
Loop
Таким образом, каждая строка / ряд компонентов проверяется путем проверки значение надежности указано в их столбце «Надежность конфигурации», чтобы найти любую строку / строку, предлагающую наименьшую надежность. Затем к этой строке добавляются дополнительные количества, пока ее надежность не превысит целевую надежность системы, которая устанавливается пользователем отдельно.
Это работает в принципе, за исключением того, что в другом столбце у меня есть выпадающий выбор, чтобы пользователь мог указать, расположен ли конкретный компонент в конфигурации "Ожидание", "Активно" или "Серия".
Мне нужен приведенный выше код для запуска, но для пропуска любой строки / строки, в которой для столбца «Configuration:» установлено значение «Series».
Другими словами, есть ли способ чтобы отредактировать эту часть кода:
'Set Variables
DatRange = Worksheets(system).ListObjects("Table_" & system).ListColumns("Reliability of Configuration").DataBodyRange
minVal = Application.WorksheetFunction.Min(DatRange)
Do Until minVal > Target_Reliability
Чтобы вместо простого поиска минимального значения он нашел минимальное значение любой строки, для которой также установлено значение «Активный» или «Ожидание», игнорируя любое значение, для которого в строке задано значение "Series"?
Надеюсь, это имеет смысл. Я некоторое время боролся с этим и действительно нуждался в помощи.
Спасибо!