单词vba,如何摆脱" Spurious"控制userform

时间:2017-10-29 23:30:49

标签: vba ms-word controls userform

只为了#34;有趣"我写了一个例程来列出用户表单上的所有控件:

header('Location: ' . $_SERVER['REQUEST_URI']);

它按预期工作,但它也打印了一些我不了解的控件的名称,以及我不想要的控件。

 Call ListAllControlsOn(myNiceForm)

 Sub ListAllControlsOn(aUserForm As UserForm)
   Dim ctrl As Control
   i = 1
   For Each ctrl In aUserForm.Controls
       Debug.Print "  Control #" & i & " of type " & TypeName(ctrl) & " is named " & ctrl.Name; ""
       If ctrl.Name = "Frame36" Then ctrl.Delete ' Delete method is not valid :-(
       i = i + 1
   Next ctrl
  End Sub

那些额外的帧不会伤害我,但我想知道如何找到和/或从用户表单中删除这些booger。

2 个答案:

答案 0 :(得分:0)

ctrl.delete

我发现了很多关于如何循环控件并删除某些控件的示例,只需要一个简单的Google Search

If

时使用ctrl.delete语句TypeName(ctrl)="Frame"

有关If语句here的更多信息。

答案 1 :(得分:0)

似乎这个问题更多是出于好奇而不是需要...毕竟,你可以TAB通过所有控制......

我认为基本问题是(至少使用VBA)你只能以编程方式.Remove'控制'在运行时以编程方式添加... see here

但是,有一些VBA IDE的插件可能会有所帮助 - 例如MZ-Tools有助于探索用户形式,并且(我刚刚确认)它可以从用户表单中删除控件。

MZ-Tools Control Explorer