UserForm RefEdit - 重新初始化范围选择的代码

时间:2015-12-10 22:59:03

标签: excel vba user-controls userform

我创建了一个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

1 个答案:

答案 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

希望有人能尽快得到更好的答案^。^;

至少输入框只会返回一个有效范围(无需检查)