我正在尝试从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
问题在于文本框仅显示为空白。
答案 0 :(得分:1)
创建类/表单实例时,将调用_Initialize
处理程序。如果您正在显示这样的表单:
UserForm1.Show
然后,如果这是您对表格所做的唯一事情,它可能会按预期工作。问题是,它是表单的默认实例,而 当VBA初始化该全局实例时,您并没有完全控制。
控制。
With New UserForm1 'initializes a new instance of the class
.Show
End With
现在_Initialize
处理程序每次都可以系统地运行,因为它每次都是New
实例。有关使用表单默认实例的更多陷阱,请参见我的UserForm1.Show文章。