Excel 2016缺陷?
我在Excel 2016中遇到了一个可复制的问题 我已经创建了一个应用程序,它将在Excel 2010中完美地工作,但在Excel 2016中不会。在应用程序中,用户选择一个工作簿,要求他们从中选择多个单独的范围 有一个带有多个按钮的表单,每个按钮都要求他们从以前选择的工作簿中选择与特定项目相关的范围 单击按钮时,所选工作簿应处于活动状态,以便他们可以选择范围。在Excel 2010中是这样,但在Excel 2016中不是这样 在Excel 2016中,用户表单所在的工作簿将继续显示,而不是所选工作簿 要复制此问题,请执行以下步骤:Excel 2016缺陷?,excel,vba,Excel,Vba,我在Excel 2016中遇到了一个可复制的问题 我已经创建了一个应用程序,它将在Excel 2010中完美地工作,但在Excel 2016中不会。在应用程序中,用户选择一个工作簿,要求他们从中选择多个单独的范围 有一个带有多个按钮的表单,每个按钮都要求他们从以前选择的工作簿中选择与特定项目相关的范围 单击按钮时,所选工作簿应处于活动状态,以便他们可以选择范围。在Excel 2010中是这样,但在Excel 2016中不是这样 在Excel 2016中,用户表单所在的工作簿将继续显示,而不是所选
- 开放式Excel 2016
- 创建2个工作簿
- 在工作簿1中,创建一个userform
- 用下面的代码创建一个命令按钮
- 激活工作簿1
- 初始化表单并单击按钮
- 选择任意范围(工作簿2应处于活动状态)
- 再次单击按钮
Private Sub CommandButton1_Click()
Dim rng As Range
Me.Hide
' Windows(2).Activate ' edited for correctness
Workbooks("Book2").Activate
On Error Resume Next
Set rng = Application.InputBox("Select range", "Select Range", Type:=8)
On Error GoTo 0
Me.Show
End Sub
这可能是由于Microsoft将Excel 2013及更高版本的MDI转换为SDI所致吗
更重要的是,我如何回避这个问题?激活“工作簿”的代码不是正确的吗?甚至是
工作簿(“名称”)。激活?在窗口中的项目顺序随着实际窗口顺序的变化而变化<代码>窗口(1)
始终是活动窗口,因此您的窗口(2)
将根据上次活动的窗口生成不同的窗口,并且它肯定不会连续两次提供相同的窗口,因为在上一次调用后,另一个窗口变为数字1。我相信这就是它从一开始在Excel中的工作方式。是的,但是用这个简单的代码复制这个问题更简单、更快。无论您使用工作簿还是Windows,问题仍然会出现。若要绕开,您可以尝试:删除Me.Hide
,用工作簿1激活替换Me.Show
。