我创建了一个Userform,其中包含多个选项按钮,作为较大宏的一部分。如果存在特定的计算错误,将加载UserForm,并要求用户选择一种方法来纠正错误。一个选项启用RefEdit控件,并允许用户选择新的起始单元格(并跳过当前和新定义的范围之间的错误和单元格)。
我已经使用_Exit事件来设置一些错误检查(例如,确保选择有效范围或确保范围是1x1范围),但我一直无法找到强制RefEdit控件的方法“重新初始化”。我尝试过使用RefEdit.SetFocus方法,但这并没有产生我想要的结果。
基本上,是否有一个我可以使用的命令反映了点击RefEdit控件上的按钮的行为?
Private Sub RefEdit_NewStartCell_Exit(ByVal Cancel As MSForms.ReturnBoolean)
On Error Resume Next
Set UserRange = Range(RefEdit_NewStartCell.Text)
If Err.Number <> 0 Then
MsgBox "Invalid range selected"
RefEdit_NewStartCell.SetFocus
End If
On Error GoTo 0
答案 0 :(得分:0)
这不是真实的&#34;回答,但一个解决方法(大多数时候excel使用RefEdit崩溃,所以我无法运行测试...对不起)
如果你想要(我使用过文本框),请使用你的RefEdit:
Private Sub TextBox1_Enter()
On Error Resume Next
Set UserRange = Nothing
UserForm1.Hide
While UserRange.Count <> 1
Set UserRange = Application.InputBox("Select Range", , , , , , , 8)
Wend
CommandButton1.SetFocus
TextBox1.Value = UserRange.Address
UserForm1.Show
End Sub
希望有人能尽快得到更好的答案^。^;
至少输入框只会返回一个有效范围(无需检查)