UserForm RefEdit – 重新初始化范围select的代码

我已经创build了一个带有几个选项button的用户窗体作为一个更大的macros的一部分。 用户窗体将加载,如果有一个特定的计算错误,并会要求用户select一种方法来纠正错误。 一个选项启用RefEdit控件,并允许用户select一个新的开始单元格(并跳过当前和新定义的范围之间的错误和单元格)。

我已经使用_Exit事件来设置一些错误检查(例如,以确保select一个有效的范围或确保范围是1×1范围),但我一直无法find一种方法来强制RefEdit控件“重新初始化。 “ 我曾尝试使用RefEdit.SetFocus方法,但是这不会产生我想要的结果。

基本上,是否有一个我可以使用的命令反映了单击RefEdit控件上的dropbutton的行为?

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

这不是一个“真正的”答案,而是一种解决方法(大多数时候excel使用RefEdit崩溃,所以我无法运行testing…对不起)

如果你想(我已经使用了一个文本框),用你的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 

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

至lessinput框只会返回一个有效范围(不需要检查)

Interesting Posts