Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 使用Do循环,同时根据单独的选择省略单元格_Excel_Vba_Loops_Do Loops_Reliability - Fatal编程技术网

Excel 使用Do循环,同时根据单独的选择省略单元格

Excel 使用Do循环,同时根据单独的选择省略单元格,excel,vba,loops,do-loops,reliability,Excel,Vba,Loops,Do Loops,Reliability,我目前正在开发可靠性计算器,作为更广泛计算的一部分,需要以下循环: '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").Data

我目前正在开发可靠性计算器,作为更广泛计算的一部分,需要以下循环:

'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
因此,它不是简单地查找最小值,而是查找也设置为“活动”或“备用”的任何行的最小值,忽略该行设置为“系列”的任何值

我希望这是有意义的。我已经为此挣扎了一段时间,真的需要帮助


谢谢!

这里有一个MINIFS公式。谢谢!我有没有办法将它合并到VBA代码中?是的,与您使用min的方式相同。您能不能先过滤您的工作表,然后运行上面的代码?@Zac不幸的是,这不是一个选项,因为此工具是为最终用户设计的“即插即用”功能