Перемістіть відкритий документ Excel в окреме вікно


14

Пов'язані (але не ті самі): Відкрийте файли Excel у новому вікні

Якщо у мене є екземпляр Excel з декількома документами, відкритими в одному вікні. Чи є спосіб "відірвати" одне з вікон у поточному запущеному екземплярі Excel, щоб воно було зовсім іншим вікном?

Що не відповідає законопроекту:

  • Упорядкувати всі / переглянути поруч / інші речі MDI; Я хочу окреме вікно, яке можна максимізувати окремо на іншому моніторі та керувати його віконною системою по-різному тощо.
  • Збереження / закриття його в запущеному екземплярі, а потім відкриття нового екземпляра Excel та відкриття файлу там (це я зараз роблю, але це біль)

редагувати : цільова версія Excel - це 2007 та 2010 роки, хоча все буде робити


Не можу вам допомогти, але я бачив і в Excel: Все в одному вікні (як MDI), і на кожному аркуші одне вікно. Ви перевірили преф? Може, це варіант?
Аарон Дігулла

1
@Aaron, що може бути прийнятним і потенційно може бути кращим за те, що у мене зараз, але я ніде не бачу цього варіанту
Daniel DiPaolo

1
Майкрософт проклятий за те, що він зачинив мене в одному вікні Excel! Чи не ваша ОС називається Windows - множиною? Ласкаво просимо до вікна 7!
dunxd

@dunxd - смішно читати цей "старий" коментар зараз, оскільки тут у майбутньому постійно користувачі скаржаться, що Excel відкриває кожну робочу книжку в окремому вікні.
ashleedawg

Тепер вікна з вкладками, як у Chrome, які можна "відірвати" або рекомбінувати - це найкраще з обох світів. Великий крок в інтерфейсі.
dunxd

Відповіді:


4

Цікава ідея. Я впевнений, що ви не можете зробити це без спеціального макросу. Будучи дощовою неділею ...

Sub OpenInNewInstance()
     Dim objXLNewApp As Excel.Application
     Dim doc As String

     doc = ActiveWorkbook.FullName
     ActiveWorkbook.Close True

     Set objXLNewApp = CreateObject("Excel.Application")

     objXLNewApp.Workbooks.Open doc
     objXLNewApp.Visible = True
End Sub

Якщо припустити, що ви не знайомі з VBA, вам потрібно буде:

  1. Скопіюйте код вище
  2. З відкритою новою робочою книжкою Excel відкрийте редактор VBA Excel (Alt + F11)
  3. Клацніть правою кнопкою миші на VBAProject (Book1) (або як воно називається в меню зліва)
  4. Виберіть Вставка> Модуль
  5. Вставте код у головне вікно
  6. Повернувшись у Excel, виберіть іншу робочу книжку, щоб перевірити код (вона збереже книгу до її закриття)
  7. Поверніться до редактора VBA, виберіть модуль, який ви вставили, і натисніть кнопку відтворення

У мене на машині встановлені 3 версії Excel, і коли я запускаю це в Excel 2010, він відкриває новий екземпляр Excel 2003.

Якщо це відповідає вашим потребам, ви можете упакувати це у доповнення та мати його у вигляді кнопки стрічки. Повідомте мене, і я можу допомогти, якщо ви не знайомі з цим.

Редагувати: Якщо такий підхід працює для вас, очевидно, було б додати якийсь додатковий код, який би забезпечив максимізацію нового примірника Excel в іншому вікні. Дай мені знати.


Це прекрасно! (З огляду на обставини використання Excel 2010, тобто)
Tobias Kienzler

Або ви можете просто клацнути правою кнопкою миші на значку Excel і натиснути Microsoft Excel, що відкриває новий екземпляр (який, по суті, те, що робить код вище). Те, що я зробив (випадково, не можу зрозуміти, як це повторити), - це відкриття книги Excel поза межами MDI існуючої програми (фактично дозволяючи мені мати цю робочу книжку в окремому вікні), але все ще в змозі взаємодіяти з іншими робочими книгами (для vlookups в моєму головному MDI (vlookups тощо).
Вільям

3

У мене немає способу "відірвати" аркуш у нове вікно, але якщо ви з самого початку знаєте, що вам потрібно два вікна, це найшвидший спосіб:

Відкрийте перший файл як звичайний. SHIFT + КЛАЦНУЙТЕ кнопку панелі завдань Excel (внизу екрана, між кнопкою «Пуск» та годинником). Це змусить Excel відкрити новий екземпляр як окреме вікно. Зайдіть у це нове вікно та натисніть Файл -> Відкрити, щоб відкрити другий файл. Промийте та повторіть, якщо потрібно для кількох вікон.

На жаль, якщо ви хочете двічі клацнути по файлах, щоб відкрити Excel, вам доведеться порушити цю звичку для другого вікна, що є моєю звичайною проблемою. Але з деяким передумовою вперед, немає простішого шляху.


0

Щоб відкрити 2 екземпляри, двічі клацніть перший файл, який ви хочете відкрити. Після того, як це відкрито, перейдіть до запуску / programs / msoffice / excel і просто відкрийте звідти інший екземпляр. Тоді ви можете використовувати File / open Це працює для мене. Якщо у вас немає перегляду параметрів папки> Типи файлів, XLS, Advanced та перевірте форму Відкрити.


Я спеціально зазначив, що це вже роблю.
Даніель Діпаоло

Гаразд вибачте, я перебирав свої вікна та випадки. І я вважаю, що ви спробували максимізувати excel на обох моніторах, а потім перегляньте -> нове вікно, яке дозволяє вам керувати цим вікном окремо?
Дейв

Перегляд> Нове вікно просто створює нове вікно в тому самому екземплярі, а не нове вікно без MDI.
Даніель Діпаоло

0

Відповідь вище, ймовірно , працювати з книгою, крім активної книги , яка є те , що мені потрібно робити. Ось що я використав


Під час запуску переконайтесь, що робоча книга є самою, наприклад:

Private Sub Workbook_Open()
    If Application.Workbooks.Count > 1 Then  'check if there's >1 open wb's in this instance
        If MsgBox("This workbook will be moved to a new instance of Excel," & vbLf & _
            "so as to not affect performance of your other workbooks.", _
            vbOKCancel + vbInformation + vbDefaultButton1 + vbMsgBoxSetForeground) _
            = vbCancel Then Exit Sub
        Debug.Print Application.Hinstance, "Moving wb to new instance."
        OpenInNewInstance
        Debug.Print Application.Hinstance, "Moved wb to new instance."
    Else
        Debug.Print "This wb is in it's own instance. (#" & Application.Hinstance & ")"
    End If
End Sub

Sub OpenInNewInstance()
    With ThisWorkbook
        .Save                                           'save workbook before making it read-only
        .ChangeFileAccess xlReadOnly                    'make this wb read-only (so the other isn't)
        Shell ("excel.exe /x """ & .FullName & """")    'open current wb in new instance
        .Close                                          'close this workbook
    End With
End Sub

Цей код йде в в ThisWorkbookмодулі , так що при відкритті книги він відразу перевіряє , є чи це тільки робоча книга відкрита в даному випадку, а якщо немає:

  1. Збережіть поточну робочу книжку
  2. Встановіть поточний wb як лише для читання (щоб запобігти появі проблеми другої копії)
  3. Shell надати командний рядок, щоб відкрити Excel у новому екземплярі (використовуючи перемикач/x командного рядка Excel ), завантажуючи інший екземпляр поточної робочої книги
  4. Закрити поточну робочу книжку

При необхідності ви можете використовувати спеціальний командний рядок під час відкриття нового екземпляра для передачі інструкцій тощо до нового екземпляра. Ви також можете розглянути питання про і проти дії приховування вікна програми для нового екземпляра.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.