我有一个Excel用户表单,其中包含多个需要滚动条的多行文本框。当我单击文本框进行滚动时,它会从文本的底部开始。当用户表单上只有一个文本框发生这种情况时,我使用了这个:
Userform1.TextBox1.SelStart = 0
一切正常。如果我尝试在同一表单的多个文本框中使用它,滚动条永远不会出现在任何框中。有谁知道如何解决这个问题?
更新
发现了一个怪癖我的帮助缩小了问题:使用多个文本框,selstart = 0适用于第一个框,但是我需要一个更大的数字用于下一个文本框的selstart。例。下面的代码将滚动条放在两个文本框的顶部。通过双击工作表1显示表单,并在初始化子文档中创建文本框的值。
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开始。我不知道如何确定文本框应该从哪里开始。
答案 0 :(得分:1)
我有一个突破。如果我使用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