Excel 2016错误?

时间:2018-04-30 11:29:44

标签: excel-vba vba excel

我遇到了Excel 2016的可复制问题。

我已经创建了一个应用程序,它可以在Excel 2010中完美运行,但不能在Excel 2016中运行。在应用程序中,用户选择一个工作簿,从中要求他们选择多个单独的范围。

有一个带有多个按钮的表单,每个按钮都要求他们从之前选择的工作簿中选择与特定项目相关的范围。

单击该按钮时,所选工作簿应处于活动状态,以便他们可以选择范围。 Excel 2010中就是这种情况,但Excel 2016中则不然。

在Excel 2016中,用户表单所在的工作簿将继续显示,而不是显示所选的工作簿。

要复制问题,可以执行以下步骤:

  • 打开Excel 2016
  • 创建2x工作簿
  • 在工作簿1中,创建用户表单
  • 使用下面的代码创建一个命令按钮。
  • 激活Workbook1
  • 初始化表单并单击按钮
  • 选择任何范围(Workbook2应处于活动状态)
  • 再次点击该按钮...

问题:选择第二个范围时,Workbook2不再处于活动状态。 (Excel 2010将使Workbook2保持活动状态 - 每次都是。)

除了选择Switch Windows功能之外,我选择从Workbook2中选择第二个范围的唯一方法是单击“取消”按钮并将鼠标放在其他位置,即不要实际点击取消。

这将显示Workbook2,但是,您还无法选择范围;只有在点击对话框后才能选择范围(从我发现的内容)。

此外,我刚刚注意到,如果您在Workbook2处于活动状态时初始化用户窗体,当您单击该按钮时,Workbook1将会激活。

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

这可能归功于微软从MDI迁移到SDI for Excel 2013及以上版本吗?

更重要的是,我该如何解决这个问题?

0 个答案:

没有答案