从Excel单元格完成VBA用户窗体文本框

时间:2018-07-03 15:49:38

标签: vba excel-vba userform excel

我正在尝试从Excel工作表(“版本”)填写一个用户窗体(“ Userform1”)文本框(“ SecurityTextBox”,“ VersionTextbox”)。我试图查找出了什么问题,但是我没有弄清楚。

Private Sub UserForm1_Initialize()
Dim ws As Worksheet
Set ws = Worksheets("Version")

SecurityTextBox.Text = ws.Cells.Range("C8").Value
VersionTextbox.Text = ws.Cells.Range("C13").Value
DeveloperTextBox.Text = ws.Cells.Range("C14").Value

End Sub

问题在于文本框仅显示为空白。

1 个答案:

答案 0 :(得分:1)

创建类/表单实例时,将调用_Initialize处理程序。如果您正在显示这样的表单:

UserForm1.Show

然后,如果这是您对表格所做的唯一事情,它可能会按预期工作。问题是,它是表单的默认实例,而 当VBA初始化该全局实例时,您并没有完全控制。

控制。

With New UserForm1 'initializes a new instance of the class
    .Show
End With

现在_Initialize处理程序每​​次都可以系统地运行,因为它每次都是New实例。有关使用表单默认实例的更多陷阱,请参见我的UserForm1.Show文章。