在标签内的图像捕获
我有一个用户窗体,其中包含一些图像的button。 然后我有三个空白标签,当我点击button/图像时,图像出现在第一个标签中。 然后,如果我点击另一个button/图像,第二个标签是图像,第三个是相同的。
36个button,标记为btn1至btn36三个空白标签名为capture1 capture2 capture3
我不确定是否需要发布任何其他信息。
我需要帮助编写代码(VBA)
从button获取图像的基本标签很简单:
Capture1.Picture = btn1.picture
真正令人头疼的事实是,您无法将相同的代码块分配给VBA中的多个Button.Click事件。 不像在VB中的语法是:
Sub MyRoutine(sender, <args>) Handles Button1.Click, Button2.Click...
在VBA中,基本上需要36个不同的_Click例程,每个button1个。 设置一个模块级计数器来跟踪你想要引用的标签。
Dim counter As Integer Private Sub UserForm_Activate() counter = 1 End Sub Private Sub btn1_Click() If counter > 3 Then counter = 1 End If Controls("capture" & counter).Picture = btn1.Picture counter = counter + 1 End Sub
除了每个例程中的button名称之外,您需要36个与此相同的例程。 幸运的是,你可以通过剪切和粘贴来完成。
如果你这样做,你可以保存几行代码:
Private Sub btn1_Click() Call CaptureImage(btn1.Name) End Sub Private Sub btn2_Click() Call CaptureImage(btn2.Name) End Sub . . . Private Sub CaptureImage(ByVal btnName As String) If counter > 3 Then counter = 1 End If Controls("capture" & counter).Picture = Controls(btnName).Picture counter = counter + 1 End Sub
但是仍然会有36个调用CaptureImage子例程的_Click例程。