Açık Excel belgesini ayrı bir pencereye taşıma


14

İlgili (ancak aynı değil): Excel dosyalarını yeni pencerede aç

Aynı pencerede birden çok belgenin açık olduğu bir Excel örneğim varsa. Excel'in geçerli çalışan örneğindeki pencerelerden birini tamamen farklı bir pencerede "ayırmanın" bir yolu var mı?

Neyi değil tasarıyı uygun:

  • Tümünü düzenleyin / yan yana / diğer MDI öğelerini görüntüleyin; Başka bir monitörde ayrı olarak büyütülebilen ve pencere sistemi tarafından farklı şekilde yönetilen ayrı bir pencere istiyorum.
  • Çalışan örnekte kaydetme / kapatma ve ardından yeni bir Excel örneği açma ve dosyayı orada açma (şu anda yaptığım şey, ancak bu bir acı)

edit : hedef Excel sürümü 2007 ve 2010, bir şey olsa da


Sana yardım edemem ama her ikisini de Excel'de gördüm: Her şey bir pencerede (MDI gibi) ve her sayfa bir pencerede. Tercihleri ​​kontrol ettin mi? Belki bir seçenek?
Aaron Digulla

1
@Aaron kabul edilebilir olabilir ve potansiyel olarak şu anda sahip olduğumdan daha iyi olurdu, ancak bu seçeneği hiçbir yerde
görmüyorum

1
Microsoft beni tek bir Excel penceresine kilitlediği için lanet olsun! İşletim sisteminiz Windows - çoğul olarak adlandırılmıyor mu? Pencere 7'ye hoş geldiniz!
dunxd

@dunxd - "eski" yorumunu okumak komik çünkü gelecekte, burada, Excel'in her çalışma kitabını ayrı bir pencerede açtığından şikayet eden sürekli kullanıcılar var .
ashleedawg

Artık Chrome'da olduğu gibi "yırtılabilen" veya yeniden birleştirilebilen sekmeli pencereler her iki dünyanın da en iyisidir. Büyük kullanıcı arayüzü öne çıkıyor.
dunxd

Yanıtlar:


4

İlginç fikir. Özel bir makro olmadan bunu yapamayacağınızdan eminim. Yağmurlu bir pazar olmak ...

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'yı bilmediğinizi varsayarsak, şunları yapmanız gerekir:

  1. Yukarıdaki kodu kopyalayın
  2. Yeni bir Excel çalışma kitabı açıldığında, Excel'in VBA düzenleyicisini açın (Alt + F11)
  3. VBAProject'e (Kitap1) (veya sol menüde ne denirse) sağ tıklayın
  4. Ekle> Modül'ü seçin
  5. Kodu ana pencereye yapıştırın
  6. Excel'de, kodu test etmek için başka bir çalışma kitabı seçin (çalışma kitabını kapatmadan önce kaydeder)
  7. VBA düzenleyicisine geri dönün, yapıştırdığınız modülü seçin ve oynat düğmesine basın

Makinemde yüklü 3 Excel sürümü var ve bunu Excel 2010'da çalıştırdığımda Excel 2003'ün yeni bir örneğini açıyor.

Bu gereksinimlerinize uygunsa, bunu bir eklenti olarak paketleyebilir ve bir şerit düğmesi olarak kullanabilirsiniz. Bana bildirin, eğer bunu bilmiyorsanız size yardımcı olabilirim.

Düzenleme: Bu yaklaşım sizin için işe yarıyorsa, tabii ki yeni bir Excel örneğinin başka bir pencerede büyütülmesini sağlayacak bazı ek kodlar eklenebilir. Bilmeme izin ver.


Bu harika! (Excel 2010'u kullanmak zorunda
kalmanın

Veya sadece Excel simgesine sağ tıklayıp yeni bir örnek açan Microsoft Excel'e tıklayabilirsiniz (bu aslında yukarıdaki kodun yaptığı gibi). Yaptığım (yanlışlıkla, nasıl tekrarlayacağımı anlayamıyorum) mevcut uygulamanın MDI'sının dışında bir Excel çalışma kitabını açıyor (etkili bir şekilde bu çalışma kitabını ayrı bir pencerede almama izin veriyor), ancak yine de diğer çalışma kitaplarıyla etkileşime geçebiliyorum (ana MDI'mdaki vlookup'lar için (vlookups, vb.)
William

3

Bir sayfayı yeni bir pencereye "yırtmak" için bir yolum yok, ama başlangıçtan itibaren iki pencere isteyeceğinizi biliyorsanız , bu en hızlı yoldur:

İlk dosyanızı normal şekilde açın. ÜST KARAKTER + Excel görev çubuğu düğmesini (ekranınızın altında, Başlat düğmesi ile saat arasında) TIKLAYIN. Bu, Excel'i yeni bir örneği ayrı bir pencere olarak açmaya zorlar. Yeni pencereye gidin ve ikinci dosyayı açmak için Dosya -> Aç'ı tıklayın. Durulayın ve birden fazla pencere için gerektiği kadar tekrarlayın.

Ne yazık ki, Excel'i açmak için dosyalara çift tıklamak isterseniz, her zamanki sorunum olan ikinci pencere için bu alışkanlığı kırmanız gerekecek. Ancak ileriye dönük bir düşünce ile daha kolay bir yol yoktur.


0

2 örneği açmak için açmak istediğiniz ilk dosyayı çift tıklayın. Bir kez açık / start / program / msoffice / excel gidin ve oradan başka bir örnek açın. O zaman Dosya / Aç kullanabilirsiniz Benim için çalışıyor. Klasör Seçenekleri> Dosya türleri, XLS, Gelişmiş'e göz atmaz ve Aç formunu kontrol edin.


Özellikle bunu zaten yaptığımı belirtmiştim.
Daniel DiPaolo

Tamam özür dilerim pencerelerimi ve örneklerimi karıştırıyordum. Ve her iki monitörde de excel'i en üst düzeye çıkarmaya çalıştığınızı ve daha sonra bu pencereyi ayrı olarak yönetmenizi sağlayan yeni pencereyi görüntülediğinizi varsayalım?
Dave

Görünüm> Yeni Pencere, aynı örnek içinde yeni bir MDI olmayan pencere değil, yeni bir pencere oluşturur.
Daniel DiPaolo

0

Yukarıdaki cevap muhtemelen aktif çalışma kitabından başka bir çalışma kitabıyla çalışacaktı . İşte kullandığım


Başlangıçta çalışma kitabının yalnız olduğundan emin olun:

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

Bu kod gider modül çalışma kitabı hemen açıldığında yalnızca bu durumda açık çalışma kitabı, ve eğer değilse denetler, böylece:ThisWorkbook

  1. Mevcut çalışma kitabını kaydet
  2. Geçerli wb'yi salt okunur olarak ayarla (ikinci bir kopyanın sorun çıkmasını önlemek için)
  3. Geçerli çalışma kitabının başka bir örneğini yükleyerek (Excel'in /xkomut satırı anahtarını kullanarak) Excel'i yeni bir örnekte açma komut istemine kabuk
  4. Geçerli çalışma kitabını kapat

Gerekirse , talimatları vb. Yeni örneğe aktarmak için yeni örneği açarken özel bir komut satırı kullanabilirsiniz . Ayrıca, yeni örnek için uygulama penceresini gizlemenin profesyonel ve yandaşlarını da düşünebilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.