我下面有10张图片,我在每张图片上分配了一个宏(用于打开另一个看不见的特定图纸)。
第一个问题: 当我打开工作簿时,我只想激活第一张图片,然后激活接下来的9张图片,例如无法激活(单击)。因此,用户可以仅单击第一个,而其他按钮则不活动。
第二个问题: 但是,当我/用户单击第一张图片时,它会打开另一个特定的工作表(已由
解决Sheets("Example1").Visible = True
Sheets("Example1").Select
),然后它还会激活第二张图片上的可能性以将其打开。
图片的工作方式类似于其他纸张的“打开按钮”,不幸的是,它必须是图片。
非常感谢您的帮助。
答案 0 :(得分:0)
使用全局变量或隐藏工作表上的单元格来存储标志值。
例如,当打开工作簿时,将标志值设置为1。单击第一张图片时,将标志设置为2。
当单击第二张图片时,首先具有检查标志值的代码。如果它是1,退出子,所以什么也没有发生。如果该标志> = 2,则运行图片2的代码并将该标志设置为3。依此类推。
答案 1 :(得分:0)
我有一个稍微不同的建议。
Sub ExecuteImgClick
粘贴此代码
Public imgName As String
Sub ExecuteImgClick()
Dim img As String
On Error Resume Next
img = Application.Caller
On Error GoTo 0
If img = imgName And img = "Pic01" Then
'~~> Do something
imgName = "Pic02" '?????? Activate next pic
ElseIf img = imgName And img = "Pic02" Then
'~~> Do something
imgName = "Pic03" '??????
ElseIf img = imgName And img = "Pic03" Then
'~~> Do something
imgName = "Pic04" '??????
ElseIf img = imgName And img = "Pic04" Then
'~~> Do something
imgName = "Pic05" '??????
'
' And so on
'
End If
End Sub
Assign Macro
添加到所有图片,并将其附加到上述过程中active
的图像的名称。例如
Private Sub Workbook_Open()
imgName = "Pic01"
End Sub
这样,无论您如何设置imgName
,该图片点击都将do something
。