Excel 如何通过第一次单击来运行宏,并通过第二次单击同一按钮来运行另一个宏?
我有两个宏,一个用于显示图像,另一个用于隐藏或删除此图像。Excel 如何通过第一次单击来运行宏,并通过第二次单击同一按钮来运行另一个宏?,excel,vba,excel-formula,Excel,Vba,Excel Formula,我有两个宏,一个用于显示图像,另一个用于隐藏或删除此图像。 我只需要在单击按钮时显示此图像,但在第二次单击时再次隐藏此图像。您可以使用相同的宏执行两个功能: Sub ShowAndHide() Dim s As Shape Set s = ActiveSheet.Shapes("Rectangle 1") s.Visible = Not s.Visible End Sub 如果宏运行且形状不可见,它将变为可见。下次运行宏时,它会将形状恢复为隐藏。重复单击将产生显示/隐藏
我只需要在单击按钮时显示此图像,但在第二次单击时再次隐藏此图像。您可以使用相同的宏执行两个功能:
Sub ShowAndHide()
Dim s As Shape
Set s = ActiveSheet.Shapes("Rectangle 1")
s.Visible = Not s.Visible
End Sub
如果宏运行且
形状不可见,它将变为可见。下次运行宏时,它会将形状
恢复为隐藏。重复单击将产生显示/隐藏/显示/隐藏/显示……。您可以对两个功能使用相同的宏:
Sub ShowAndHide()
Dim s As Shape
Set s = ActiveSheet.Shapes("Rectangle 1")
s.Visible = Not s.Visible
End Sub
如果宏运行且形状不可见,它将变为可见。下次运行宏时,它会将形状
恢复为隐藏。重复单击将产生显示/隐藏/显示/隐藏/显示……。如果您想使用相同的命令按钮在两个宏之间切换,以下内容可作为参考
Dim btnRun As Shape 'Declaring the command button variable
Sub Initializevariables()
Set btnRun = Worksheets("Sheet1").Shapes("Button 1") 'Initiailizing the variable
End Sub
' Ensure that you have assigned Macro 1 to the command button
Sub Macro1()
Call Initializevariables
MsgBox "Macro 1 ran"
btnRun.OnAction = "Module1.Macro2"
End Sub
Sub Macro2()
Call Initializevariables
MsgBox "Macro 2 ran"
btnRun.OnAction = "Module1.Macro1"
End Sub
如果您想使用相同的命令按钮在两个宏之间切换,可以使用下面的命令按钮作为参考
Dim btnRun As Shape 'Declaring the command button variable
Sub Initializevariables()
Set btnRun = Worksheets("Sheet1").Shapes("Button 1") 'Initiailizing the variable
End Sub
' Ensure that you have assigned Macro 1 to the command button
Sub Macro1()
Call Initializevariables
MsgBox "Macro 1 ran"
btnRun.OnAction = "Module1.Macro2"
End Sub
Sub Macro2()
Call Initializevariables
MsgBox "Macro 2 ran"
btnRun.OnAction = "Module1.Macro1"
End Sub
它不会工作,因为我的宏比这复杂得多。我从URL获取照片的第一个宏应用了这个概念,这个概念在示例中被巧妙地执行,这取决于您,特别是您最初没有提供任何示例代码…@HusinAljawad我理解您的担忧。我的回答只是一个技术演示。您可以在宏中设置两个单独的路径,具体取决于输入时的可见性状态。是的,您可以使用if-else块代替声明,一个用于从url绑定图像,另一个用于隐藏图像。这将不起作用,因为我的宏比这更复杂。我从URL获取照片的第一个宏应用了这个概念,这个概念在示例中被巧妙地执行,这取决于您,特别是您最初没有提供任何示例代码…@HusinAljawad我理解您的担忧。我的回答只是一个技术演示。您可以在宏中设置两个单独的路径,具体取决于输入时的可见性状态。是的,您可以使用if-else块代替声明,一个用于从url绑定图像,另一个用于隐藏图像。