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
我的 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