Vba 将变量放入用户名中

Vba 将变量放入用户名中,vba,variables,userform,Vba,Variables,Userform,我在子函数中有以下代码: If Auswertung.Controls("T" & Te & "F" & Fr & "Option1").Value = False Then falseSelection = falseSelection + 1 end If If Auswertung2.Controls("T" & Te & "F" & Fr & "Option1").Value = False Then fa

我在子函数中有以下代码:

If Auswertung.Controls("T" & Te & "F" & Fr & "Option1").Value = False Then
    falseSelection = falseSelection + 1
end If

If Auswertung2.Controls("T" & Te & "F" & Fr & "Option1").Value = False Then
    falseSelection = falseSelection + 1
end If
有15个UserForms,所以我需要使用一个变量作为UserForm名称

"Auswertung" & X & .Controls("T" & Te & "F" & Fr & "Option1").Value
(This is wrong, but I do not know which capabilites VBA has)

有没有办法做到这一点?

访问VBA

Dim f As Object
For Each f In VBA.UserForms
    Debug.Print f.Name
Next
这就是如何循环一个项目的所有形式。在您的情况下,您可以将其修改为存储在变量中,然后在
.Name
上运行检查,查看它是否与您需要的表单匹配

Dim f
For Each f In CurrentProject.AllForms
    Debug.Print f.Name
Next
或者,您可以通过以下方式简单地引用一个表单的名称

Forms.Item("Auswertung" & X).Controls
Excel VBA

Dim f As Object
For Each f In VBA.UserForms
    Debug.Print f.Name
Next

使用Forms.Item的第二个方法给出了运行时错误424:Object required。我能做什么?当我键入表单时,它不会得到大写字母,即VBA中给定对象的指示符。这是access还是excel?我有excel。我以“Dim f作为对象”为例。但我不知道在“Debug.Print f.Name”之后该怎么办。我想我必须在那之后写下下面一行:“f.Name.Controls(“T”&Te&“f”&Fr&“Option1”).Value”,但它不起作用。我认为它一定与Debug.Print有关,相反,我必须使用不同的代码?如果我像这样声明f.Name为变量(string):“Dim StringN为string”,然后是“f.Name=StringN”,然后是“StringN.Controls…”,它会说“编译错误:无效限定符”。