Ошибка в Excel 2016? - PullRequest
       24

Ошибка в Excel 2016?

0 голосов
/ 30 апреля 2018

У меня возникла проблема с тиражированием в Excel 2016.

Я создал приложение, которое будет работать безупречно в Excel 2010, но не в Excel 2016. В приложении пользователь выбирает книгу, из которой ему будет предложено выбрать несколько отдельных диапазонов.

Существует форма с несколькими кнопками, каждая из которых просит их выбрать диапазон, связанный с конкретным элементом из ранее выбранной книги.

При нажатии кнопки выбранная рабочая книга должна быть активной, чтобы они могли выбирать диапазон. Это имеет место в Excel 2010, но не в Excel 2016.

В Excel 2016 книга, в которой существует пользовательская форма, продолжает отображаться вместо выбранной книги.

Чтобы воспроизвести проблему, выполните следующие шаги:

  • Открыть Excel 2016
  • Создание 2х рабочих книг
  • В Рабочей книге 1 создайте форму пользователя
  • Создайте командную кнопку с кодом ниже.
  • Активировать рабочую книгу1
  • Инициализируйте форму и нажмите кнопку
  • Выберите любой диапазон (Workbook2 должен быть активен)
  • Нажмите кнопку еще раз ...

Проблема: Workbook2 больше не активен при выборе второго диапазона. (Excel 2010 будет поддерживать Workbook2 активным - каждый раз).

Кроме выбора функции «Переключить 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

Может ли это быть связано с переходом Microsoft с MDI на SDI для Excel 2013 и выше?

Более важно, как мне обойти эту проблему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...