VBA Userform文本框滚动从顶部开始
我有一个Excel用户窗体,需要多个滚动条的多行文本框。 当我点击一个文本框滚动,它从文本的底部开始。 当这发生在用户表单上的一个文本框时,我使用了这个:
Userform1.TextBox1.SelStart = 0
和一切工作。 如果我尝试在同一个窗体中的多个文本框上使用它,则滚动条从不会出现在任何框中。 有谁知道如何解决这一问题?
更新:
发现一个奇怪的问题,我的帮助缩小了问题的范围:多个文本框,selstart = 0的作品在第一个框,但是我需要一个更大的数字selstart下一个文本框。 例。 下面的代码将滚动条放在两个文本框的顶部。 表单通过双击表单1显示,文本框的值是在初始化子文件中创build的。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) UserForm1.Show End Sub -------------- Private Sub UserForm_Initialize() UserForm1.TextBox1.Value = Sheets("Sheet1").Cells(1, 1).Value UserForm1.TextBox1.SelStart = 0 UserForm1.TextBox2.Value = Sheets("Sheet1").Cells(2, 1).Value UserForm1.TextBox2.SelStart = 200 End Sub
但是我只能通过猜测和检查发现textbox2必须从200开始。 我不知道如何确定文本框应该在哪里启动。
我有了突破。 如果我使用SetFocus然后做selstart = 0一切似乎工作。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) UserForm1.Show End Sub
Private Sub UserForm_Initialize() UserForm1.TextBox1.Value = Sheets("Sheet1").Cells(1, 1).Value UserForm1.TextBox1.SetFocus UserForm1.TextBox1.SelStart = 0 UserForm1.TextBox2.Value = Sheets("Sheet1").Cells(2, 1).Value UserForm1.TextBox2.SetFocus UserForm1.TextBox2.SelStart = 0 End Sub