【发布时间】:2019-06-12 00:27:25
【问题描述】:
我创建了一个用户窗体,它可以创建多达 6 个图像控件,并在按下命令按钮时用图片填充它们 (通过复选框您可以选择图片)。
现在,当按下命令按钮时,我希望在重新加载图像控件和图片之前删除所有带有图片的图像控件,以便在需要时不必Unload UserForm通过复选框选择其他图片。我试图通过循环图像控件来做到这一点,但这不适用于我的代码。你有什么建议我可以解决这个问题吗?谢谢。
(记住:整个想法是将删除过程作为子中的第一个操作;我不想Unload Me等...)
Option Explicit
Dim i, k As Byte
Private Sub cmdGetGraphics_Click()
Dim sum_cb As Byte, cb_slct As Byte, y As Byte, sum_img As Byte
Dim Img As MSForms.Image
Dim Control As Control
Dim F(1 To 6) As Integer
Dim img_name As String
For Each Control In Me.Controls
If TypeName(Control) = "Image" Then
For i = 1 To 6
Me.Controls.Remove "Image" & i 'error occurs here: Invalid Argument
Next i
End If
Next Control
【问题讨论】:
-
Me.Controls(Control).Remove或者可能是Me.Controls.Remove(Control) -
针对您的问题发布了答案和解决方案。如果我能提供帮助,请通过将其标记为已接受来帮助其他读者确定一个好的答案 - 请参阅"Someone answers" - cf。 Someone answers
-
@tom - 添加了语法链接(与 Nick 的建议不对应),实际上非常感谢您的反馈,因为任何在这里回答的人都会花一些时间来提供帮助 (参见之前的评论)
标签: excel vba loops controls userform