基于UserForm选择单元格时会出现问题,该UserForm由分配给工作表上的Form控件(Button)的宏调用。
选择工作表和单元格后,数据不会在所选单元格中输入(最初),当选择了不同的单元格时,数据会消失(Tab,Return,箭头键),鼠标在另一个单元格中单击会停止效果。 / p>
要重现您需要的问题:
Module1应包含以下内容:
Sub ShowForm()
UserForm1.Show
End Sub
UserForm1应包含以下内容:
Private Sub CommandButton1_Click()
With ThisWorkbook.Worksheets(2)
.Activate
.Cells(5, 5).Select
End With
Unload Me
End Sub
将ShowForm宏指定给sheet1上的Form控件按钮。
单击sheet1上的按钮时,会发生以下情况。带按钮的表单将显示。如果单击表单上的按钮,则激活Sheet2并选择单元格E5并卸载表单。
如果此时您尝试输入似乎被选中的sheet2单元格E5,您可能会注意到文本出现在sheet1上最后一次选择的单元格中,并在使用Tab键选择另一个单元格时消失。 ,箭头键(再次鼠标单击以选择另一个单元格,而光标在上一个单元格中停止效果)。此外,如果您随后在Sheet2上选择不同的单元格,则在选择其他单元格时文本将消失。此效果将持续到手动选择不同的纸张。您会注意到您在sheet2上输入的数据实际上是在sheet1中。
如果从宏列表中运行ShowForm宏,您可以在功能区上的开发人员选项卡上的宏按钮下找到该宏,则不会出现上述问题。
另外,如果在Sheet1上放置ActiveX CommandButton并将下面的代码添加到按钮,则也没有问题。
Private Sub CommandButton1_Click()
call ShowForm
End Sub
为什么代码适用于ActiveX控件,而不适用于Form控件?
我在Windows 8.1 64位上使用Excel 2013 32bit。
我已升级到Excel 2016,问题仍然存在。
答案 0 :(得分:0)
我不知道问题是否已解决,但您可以尝试这样screenupdating=False
:
Private Sub CommandButton1_Click()
With ThisWorkbook.Worksheets(2)
.Activate
.Cells(5, 5).Select
End With
Unload Me
Application.ScreenUpdating = False
End Sub