Excel 多个 if 语句到 运行 多个宏

Excel multiple if statements to run multiple macros

我的 Excel 中有几个对象,我正在使用 macro1、macro2 和 macro3 导出它们。我使用 "mainmacro" 到 运行 所有这些过程。 我还有复选框(表单控件)来选择应导出的对象。因此,如果复选框 1 被选中,我在单元格 B1 中有 "TRUE",如果它未被选中,那么在 B1 中是 "FALSE"。与复选框 2 -> B2、复选框 3 -> B3 相同。

如果单元格 B1 中是 "TRUE",那么主宏 运行s macro1,如果 B1 是 "FALSE",则什么也不会发生。 如果 B2 是 "TRUE",那么主宏 运行s macro2,如果 B2 是 "FALSE",那么什么也不会发生。 如果 B3 是 "TRUE",那么主宏 运行s macro3,如果 B3 是 F"FALSE",那么什么也不会发生。

我所有的宏都应该 运行 独立。因此,如果我选择 B1 和 B2(通过使用复选框)"TRUE",那么我需要 运行 macro1 和 macro2,而不是 macro3。与所有可能的组合相同。 运行 "TRUE" 值并跳过 "FALSE"。 我的代码无法正常工作,因为它 运行 是前两个语句而不是最后一个。可能是什么问题?

Sub mainmacro()
Dim ws As Worksheet: Set ws = Sheets("MAIN")
    'declare and set your worksheet, amend as required
    If ws.Range("B1").Value = True Then
        macro1
    If ws.Range("B2").Value = True Then
        macro2
    If ws.Range("B3").Value = True Then
        macro3
    End If
    End If
    End If
End Sub

关闭您的 IF 语句,因为它们彼此独立:

If ws.Range("B1").Value = True Then
        macro1
End If

If ws.Range("B2").Value = True Then
        macro2
End If

If ws.Range("B3").Value = True Then
        macro3
End If

另外,由于您的 IF 语句是单行表达式,您可以忽略结尾的 if 语句,如下所示:

If ws.Range("B1").Value = True Then macro1

If ws.Range("B2").Value = True Then macro2

If ws.Range("B3").Value = True Then macro3