有没有人有任何想法,如果有更快的方式来编码?我正在开发一个Excel工作表,如果你点击一个复选框,True出现在单元格中。然后,如果单元格如果为真然后....但是有11个可能的选择意味着字面上有数百万个可能的组合,并且编写每行代码并且双重检查它正在杀死我。实施例下面的代码(仅可能的组合的10在VBA中快速编写条件if-then语句
If Worksheets("Overview").Range("B36").Value = "" And Worksheets("Overview").Range("C36").Value = "" And Worksheets("Overview").Range("D36").Value = "" And Worksheets("Overview").Range("E36").Value = "" And Worksheets("Overview").Range("F36").Value = "" And Worksheets("Overview").Range("G36").Value = "" And Worksheets("Overview").Range("H36").Value = "" And Worksheets("Overview").Range("I36").Value = "" And Worksheets("Overview").Range("J36").Value = "" And Worksheets("Overview").Range("K36").Value = "" And Worksheets("Overview").Range("L36").Value = "" Then
MsgBox "Please select engagement components."
ElseIf Worksheets("Overview").Range("B36").Value = "True" And Worksheets("Overview").Range("C36").Value = "" And Worksheets("Overview").Range("D36").Value = "" And Worksheets("Overview").Range("E36").Value = "" And Worksheets("Overview").Range("F36").Value = "" And Worksheets("Overview").Range("G36").Value = "" And Worksheets("Overview").Range("H36").Value = "" And Worksheets("Overview").Range("I36").Value = "" And Worksheets("Overview").Range("J36").Value = "" And Worksheets("Overview").Range("K36").Value = "" And Worksheets("Overview").Range("L36").Value = "" Then
MsgBox "Cost: " & Worksheets("Billing Rates").Range("C33").Value & vbNewLine & "Hours: " & Worksheets("Billing Rates").Range("C25").Value & vbNewLine & "Scope: "
ElseIf Worksheets("Overview").Range("B36").Value = "True" And Worksheets("Overview").Range("C36").Value = "True" And Worksheets("Overview").Range("D36").Value = "" And Worksheets("Overview").Range("E36").Value = "" And Worksheets("Overview").Range("F36").Value = "" And Worksheets("Overview").Range("G36").Value = "" And Worksheets("Overview").Range("H36").Value = "" And Worksheets("Overview").Range("I36").Value = "" And Worksheets("Overview").Range("J36").Value = "" And Worksheets("Overview").Range("K36").Value = "" And Worksheets("Overview").Range("L36").Value = "" Then
MsgBox "Cost: " & Worksheets("Billing Rates").Range("C33").Value + Worksheets("Billing Rates").Range("D33").Value & vbNewLine & "Hours: " & Worksheets("Billing Rates").Range("C25").Value + Worksheets("Billing Rates").Range("D25").Value & vbNewLine & "Scope: "
ElseIf Worksheets("Overview").Range("B36").Value = "True" And Worksheets("Overview").Range("C36").Value = "True" And Worksheets("Overview").Range("D36").Value = "True" And Worksheets("Overview").Range("E36").Value = "" And Worksheets("Overview").Range("F36").Value = "" And Worksheets("Overview").Range("G36").Value = "" And Worksheets("Overview").Range("H36").Value = "" And Worksheets("Overview").Range("I36").Value = "" And Worksheets("Overview").Range("J36").Value = "" And Worksheets("Overview").Range("K36").Value = "" And Worksheets("Overview").Range("L36").Value = "" Then
MsgBox "Cost: " & Worksheets("Billing Rates").Range("C33").Value + Worksheets("Billing Rates").Range("D33").Value + Worksheets("Billing Rates").Range("E33").Value & vbNewLine & "Hours: " & Worksheets("Billing Rates").Range("C25").Value + Worksheets("Billing Rates").Range("D25").Value + Worksheets("Billing Rates").Range("E25").Value & vbNewLine & "Scope: "
ElseIf Worksheets("Overview").Range("B36").Value = "True" And Worksheets("Overview").Range("C36").Value = "True" And Worksheets("Overview").Range("D36").Value = "True" And Worksheets("Overview").Range("E36").Value = "True" And Worksheets("Overview").Range("F36").Value = "" And Worksheets("Overview").Range("G36").Value = "" And Worksheets("Overview").Range("H36").Value = "" And Worksheets("Overview").Range("I36").Value = "" And Worksheets("Overview").Range("J36").Value = "" And Worksheets("Overview").Range("K36").Value = "" And Worksheets("Overview").Range("L36").Value = "" Then
MsgBox "Cost: " & Worksheets("Billing Rates").Range("C33").Value + Worksheets("Billing Rates").Range("D33").Value + Worksheets("Billing Rates").Range("E33").Value + Worksheets("Billing Rates").Range("F33") & vbNewLine & "Hours: " & Worksheets("Billing Rates").Range("C25").Value + Worksheets("Billing Rates").Range("D25").Value + Worksheets("Billing Rates").Range("E25").Value + Worksheets("Billing Rates").Range("F25").Value & vbNewLine & "Scope: "
ElseIf Worksheets("Overview").Range("B36").Value = "True" And Worksheets("Overview").Range("C36").Value = "True" And Worksheets("Overview").Range("D36").Value = "True" And Worksheets("Overview").Range("E36").Value = "True" And Worksheets("Overview").Range("F36").Value = "True" And Worksheets("Overview").Range("G36").Value = "" And Worksheets("Overview").Range("H36").Value = "" And Worksheets("Overview").Range("I36").Value = "" And Worksheets("Overview").Range("J36").Value = "" And Worksheets("Overview").Range("K36").Value = "" And Worksheets("Overview").Range("L36").Value = "" Then
MsgBox "Cost: " & Worksheets("Billing Rates").Range("C33").Value + Worksheets("Billing Rates").Range("D33").Value + Worksheets("Billing Rates").Range("E33").Value + Worksheets("Billing Rates").Range("F33") + Worksheets("Billing Rates").Range("G33") & vbNewLine & "Hours: " & Worksheets("Billing Rates").Range("C25").Value + Worksheets("Billing Rates").Range("D25").Value + Worksheets("Billing Rates").Range("E25").Value + Worksheets("Billing Rates").Range("F25").Value + Worksheets("Billing Rates").Range("G25") & vbNewLine & "Scope: "
ElseIf Worksheets("Overview").Range("B36").Value = "True" And Worksheets("Overview").Range("C36").Value = "True" And Worksheets("Overview").Range("D36").Value = "True" And Worksheets("Overview").Range("E36").Value = "True" And Worksheets("Overview").Range("F36").Value = "True" And Worksheets("Overview").Range("G36").Value = "True" And Worksheets("Overview").Range("H36").Value = "" And Worksheets("Overview").Range("I36").Value = "" And Worksheets("Overview").Range("J36").Value = "" And Worksheets("Overview").Range("K36").Value = "" And Worksheets("Overview").Range("L36").Value = "" Then
MsgBox "Cost: " & Worksheets("Billing Rates").Range("C33").Value + Worksheets("Billing Rates").Range("D33").Value + Worksheets("Billing Rates").Range("E33").Value + Worksheets("Billing Rates").Range("F33") + Worksheets("Billing Rates").Range("G33") + Worksheets("Billing Rates").Range("H33") & vbNewLine & "Hours: " & Worksheets("Billing Rates").Range("C25").Value + Worksheets("Billing Rates").Range("D25").Value + Worksheets("Billing Rates").Range("E25").Value + Worksheets("Billing Rates").Range("F25").Value + Worksheets("Billing Rates").Range("G25").Value + Worksheets("Billing Rates").Range("H25") & vbNewLine & "Scope: "
ElseIf Worksheets("Overview").Range("B36").Value = "True" And Worksheets("Overview").Range("C36").Value = "True" And Worksheets("Overview").Range("D36").Value = "True" And Worksheets("Overview").Range("E36").Value = "True" And Worksheets("Overview").Range("F36").Value = "True" And Worksheets("Overview").Range("G36").Value = "True" And Worksheets("Overview").Range("H36").Value = "True" And Worksheets("Overview").Range("I36").Value = "" And Worksheets("Overview").Range("J36").Value = "" And Worksheets("Overview").Range("K36").Value = "" And Worksheets("Overview").Range("L36").Value = "" Then
MsgBox "Cost: " & Worksheets("Billing Rates").Range("C33").Value + Worksheets("Billing Rates").Range("D33").Value + Worksheets("Billing Rates").Range("E33").Value + Worksheets("Billing Rates").Range("F33") + Worksheets("Billing Rates").Range("G33").Value + Worksheets("Billing Rates").Range("H33").Value + Worksheets("Billing Rates").Range("I33").Value & vbNewLine & "Hours: " & Worksheets("Billing Rates").Range("C25").Value + Worksheets("Billing Rates").Range("D25").Value + Worksheets("Billing Rates").Range("E25").Value + Worksheets("Billing Rates").Range("F25").Value + Worksheets("Billing Rates").Range("G25") + Worksheets("Billing Rates").Range("H25") + Worksheets("Billing Rates").Range("I25").Value & vbNewLine & "Scope: "
ElseIf Worksheets("Overview").Range("B36").Value = "True" And Worksheets("Overview").Range("C36").Value = "True" And Worksheets("Overview").Range("D36").Value = "True" And Worksheets("Overview").Range("E36").Value = "True" And Worksheets("Overview").Range("F36").Value = "True" And Worksheets("Overview").Range("G36").Value = "True" And Worksheets("Overview").Range("H36").Value = "True" And Worksheets("Overview").Range("I36").Value = "True" And Worksheets("Overview").Range("J36").Value = "" And Worksheets("Overview").Range("K36").Value = "" And Worksheets("Overview").Range("L36").Value = "" Then
MsgBox "Cost: " & Worksheets("Billing Rates").Range("C33").Value + Worksheets("Billing Rates").Range("D33").Value + Worksheets("Billing Rates").Range("E33").Value + Worksheets("Billing Rates").Range("F33") + Worksheets("Billing Rates").Range("G33").Value + Worksheets("Billing Rates").Range("H33").Value + Worksheets("Billing Rates").Range("I33").Value + Worksheets("Billing Rates").Range("J33").Value & vbNewLine & "Hours: " & Worksheets("Billing Rates").Range("C25").Value + Worksheets("Billing Rates").Range("D25").Value + Worksheets("Billing Rates").Range("E25").Value + Worksheets("Billing Rates").Range("F25").Value + Worksheets("Billing Rates").Range("G25") + Worksheets("Billing Rates").Range("H25") + Worksheets("Billing Rates").Range("I25").Value & vbNewLine & "Scope: "
ElseIf Worksheets("Overview").Range("B36").Value = "True" And Worksheets("Overview").Range("C36").Value = "True" And Worksheets("Overview").Range("D36").Value = "True" And Worksheets("Overview").Range("E36").Value = "True" And Worksheets("Overview").Range("F36").Value = "True" And Worksheets("Overview").Range("G36").Value = "True" And Worksheets("Overview").Range("H36").Value = "True" And Worksheets("Overview").Range("I36").Value = "True" And Worksheets("Overview").Range("J36").Value = "True" And Worksheets("Overview").Range("K36").Value = "" And Worksheets("Overview").Range("L36").Value = "" Then
MsgBox "Cost: " & Worksheets("Billing Rates").Range("C33").Value + Worksheets("Billing Rates").Range("D33").Value + Worksheets("Billing Rates").Range("E33").Value + Worksheets("Billing Rates").Range("F33") + Worksheets("Billing Rates").Range("G33").Value + Worksheets("Billing Rates").Range("H33").Value + Worksheets("Billing Rates").Range("I33").Value + Worksheets("Billing Rates").Range("J33").Value + Worksheets("Billing Rates").Range("K33").Value & vbNewLine & "Hours: " & Worksheets("Billing Rates").Range("C25").Value + Worksheets("Billing Rates").Range("D25").Value + Worksheets("Billing Rates").Range("E25").Value + Worksheets("Billing Rates").Range("F25").Value + Worksheets("Billing Rates").Range("G25") + Worksheets("Billing Rates").Range("H25") + Worksheets("Billing Rates").Range("I25").Value + Worksheets("Billing Rates").Range("J25").Value & vbNewLine & "Scope: "
ElseIf Worksheets("Overview").Range("B36").Value = "True" And Worksheets("Overview").Range("C36").Value = "True" And Worksheets("Overview").Range("D36").Value = "True" And Worksheets("Overview").Range("E36").Value = "True" And Worksheets("Overview").Range("F36").Value = "True" And Worksheets("Overview").Range("G36").Value = "True" And Worksheets("Overview").Range("H36").Value = "True" And Worksheets("Overview").Range("I36").Value = "True" And Worksheets("Overview").Range("J36").Value = "True" And Worksheets("Overview").Range("K36").Value = "True" And Worksheets("Overview").Range("L36").Value = "" Then
MsgBox "Cost: " & Worksheets("Billing Rates").Range("C33").Value + Worksheets("Billing Rates").Range("D33").Value + Worksheets("Billing Rates").Range("E33").Value + Worksheets("Billing Rates").Range("F33") + Worksheets("Billing Rates").Range("G33").Value + Worksheets("Billing Rates").Range("H33").Value + Worksheets("Billing Rates").Range("I33").Value + Worksheets("Billing Rates").Range("J33").Value + Worksheets("Billing Rates").Range("K33").Value + Worksheets("Billing Rates").Range("L33").Value & vbNewLine & "Hours: " & Worksheets("Billing Rates").Range("C25").Value + Worksheets("Billing Rates").Range("D25").Value + Worksheets("Billing Rates").Range("E25").Value + Worksheets("Billing Rates").Range("F25").Value + Worksheets("Billing Rates").Range("G25") + Worksheets("Billing Rates").Range("H25") + Worksheets("Billing Rates").Range("I25").Value + Worksheets("Billing Rates").Range("J25").Value + Worksheets("Billing Rates").Range("K25").Value + Worksheets("Billing Rates").Range("L25").Value
如果这是工作的代码,我可能会建议代码审查堆栈交流? – Chrismas007
您也可以使用嵌套的Ifs,因为您似乎在许多代码行中具有相同的条件(这会显着缩短代码) – Chrismas007