Пользовательская форма для навигации между несколькими открытыми книгами - PullRequest
0 голосов
/ 17 октября 2018

У меня есть небольшая программа VBA, которая фактически является пользовательской формой, которая позволяет мне отображать все существующие рабочие книги, которые в данный момент открыты.С помощью этой пользовательской формы я могу выбрать другую рабочую книгу и, щелкнув по имени рабочей книги, отобразится в списке, она переориентирует меня на нужную рабочую книгу, активировав ее.Проблема в том, что он не работает каждый раз, и иногда, когда я пытаюсь щелкнуть нужную книгу в моем списке, это не обязательно переориентирует меня на нужную книгу.Возможно, в коде, связанном с моим списком, что-то не так: With Me.ListBox1If .ListIndex <> -1 Then Workbooks (.Value).Activate Если кто-то может мне помочь, это было бы здорово.

Спасибо Ксавье

Пожалуйста, найдите мой код ниже:

'code in module in VBAproject (personal.XLSB)
Sub UserFormmanagementworkbooks()
    UserForm2.Show vbModeless
End Sub

'code in userform called Userform2
Sub UserForm_Initialize()
    Dim n As Long
    Do
        n = n + 1
        Me.ListBox1.AddItem Workbooks(n).Name
    Loop Until n = Workbooks.Count
End Sub

Sub ListBox1_Click()
    With Me.ListBox1
        If .ListIndex <> -1 Then Workbooks(.Value).Activate
    End With
End Sub

1 Ответ

0 голосов
/ 17 октября 2018

Я могу вспомнить о трех проблемах

  1. Сначала может возникнуть проблема инициализации, я инициализировал n = 0
Sub UserForm_Initialize()
    Dim n As Long
    n = 0
    Do
        n = n + 1
        Me.ListBox1.AddItem Workbooks(n).Name
    Loop Until n = Workbooks.Count
End Sub

Во-вторых, форма принимает список книг, когда вы его открываете, поэтому логически он не будет искать книгу, открытую после ее инициализации

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

a.Если дважды щелкнуть файл Excel, он откроется в том же окне.

b.Когда вы нажимаете кнопку Открыть в уже существующем окне Excel и открывает файл, он открывается в том же окне

c.Когда вы открываете другой Excel из ярлыка Excel, вы открываете другой Excel, и любой файл в этом Excel не будет включен в вашу форму.

Мои знания ограничены несколькими версиями Excel, возможно, в других версиях.разные, но в тех, что я видел, это могут быть случаи.

...