Excel 使用VBA userform选择多张图纸上的范围-图纸更改回原始activesheet

Excel 使用VBA userform选择多张图纸上的范围-图纸更改回原始activesheet,excel,userform,vba,Excel,Userform,Vba,我有一个userform,它有多个RefEdit控件。我需要用户从多个工作表中选择范围,并且必须先完成userform,然后才能运行其余代码 问题:启动userform时,activesheet是Sheet1。每次我在Sheet2上选择一个范围并单击进入下一个参照编辑时,可见的Excel工作表将返回到Sheet1。我希望工作表保留在Sheet2上,因为在工作表之间单击会显著增加选择数据所需的时间 因为我需要在继续编写代码之前完成userform,所以使用vbModeless似乎不起作用 我曾尝试

我有一个userform,它有多个RefEdit控件。我需要用户从多个工作表中选择范围,并且必须先完成userform,然后才能运行其余代码

问题:启动userform时,activesheet是Sheet1。每次我在Sheet2上选择一个范围并单击进入下一个参照编辑时,可见的Excel工作表将返回到Sheet1。我希望工作表保留在Sheet2上,因为在工作表之间单击会显著增加选择数据所需的时间

因为我需要在继续编写代码之前完成userform,所以使用vbModeless似乎不起作用

我曾尝试单步浏览看似相关的userform事件,但在我输入RefEdit、选择数据或离开RefEdit时没有激活任何事件

提前感谢您的帮助

编辑:从回答中输入一些信息,再做一些研究,我想我已经解决了问题,找到了解决办法

RefEdit事件,例如Change或Exit,我尝试了所有这些事件,我认为在控件中发生更改时不会触发它们。因此,当我更改控件时,我无法编写代码来操作activesheet。这里有一个解决方法:使用文本框和输入框来模拟RefEdit控件,并在进行更改时实际触发!代码如下。要添加其他RefEdit控件,应为每个控件重复Userform_Initialize事件中的代码,然后添加另一个TextBox1_DropButton单击并将TextBox1更新为新控件的名称。在控件更新时使用,工作簿跳转到上一个activesheet,然后返回所需的activesheet。没有我想要的那么光滑,但比以前好多了

代码:


这个表单模块对我有用

Private Sub CommandButton1_Click() 'Cancel Button
Unload Me
End Sub

Private Sub CommandButton2_Click()  'GO Button
Dim newSheet As Worksheet

abc = Split(RefEdit1.Value, "!")
cbn = abc(0)
Unload Me
Set newSheet = Worksheets(abc(0))
newSheet.Activate
End Sub

您是否尝试过以下简单的方法:

SheetsSheet2。选择

在您的表单代码开头的某个地方

由于您尚未发布代码,因此很难提供好的答案。
希望这有点帮助:

我试图对RefEdit事件执行类似的操作,但在进行更改时,RefEdit似乎无法触发。我在原来的帖子上发表了一篇编辑文章,并在某一点上使用了你的分裂观点。谢谢你的帮助!
Private Sub CommandButton1_Click() 'Cancel Button
Unload Me
End Sub

Private Sub CommandButton2_Click()  'GO Button
Dim newSheet As Worksheet

abc = Split(RefEdit1.Value, "!")
cbn = abc(0)
Unload Me
Set newSheet = Worksheets(abc(0))
newSheet.Activate
End Sub