首页 > 解决方案 > Excel VBA:在循环中使用 userform vbmodeless

问题描述

我指的是: 如何让 VBA 代码等到关闭 vbModeless 用户窗体

我试图在一个类模块中理解这里的代码来解决我的问题,但由于我对类编程不太熟悉而失败了。

也许有人可以给我更多的细节,我必须做什么。

问题描述:我有一个用户表单来插入数据,主要是在文本框中填充文本。如果在 Excel 表中发现不正确的数据,则会打开此用户表单。我用 For... 循环遍历工作表的行当它发现不正确的数据时,它会打开用户窗体以将数据手册输入到文本框。使用保存并退出(卸载我)。我将数据保存回工作表。我使用 userform vbmodeless 的原因是我想从另一个 excel 表中复制数据。如果我打开用户窗体 vbmodal,这是不可能的。

以下是代码示例:

Option Explicit
Public done As Boolean 'Userform UF_Input filled

Sub Userform_vbmodeless_in_Loop()
'Testprogram with userform vbmodeless in a loop
Dim i As Integer

For i = 1 To 4
    UF_Input.TextBox1.Text = "That is the " & i & ". Test"
    
    done = False 'per default
    
    'Loop as long as the input userform is not left
    Do While done = False
        UF_Event.Show vbModeless
        DoEvents
        UF_Event.Label1.Caption = "Loop: " & i
    Loop
    
    'Unload Event userform
    Unload UF_Event
Next i

End Sub

最好的问候迈克尔

标签: excelvbaclassuserform

解决方案


推荐阅读