VBA'da geçerli çalışma sayfasının yolu nasıl alınır?


141

Eklenti olarak bir makro yazdım ve üzerinde çalışmakta olduğu geçerli çalışma sayfasının yolunu almam gerekiyor. Bunu nasıl yaparım? Dosya yolunu nasıl alabilirim (sadece dizin)?


yani, bir çalışma sayfasına bakıldığında, üst çalışma kitabının kaydedildiği klasörü bilmek ister misiniz?
Mathias

Yanıtlar:


264

Kullanın Application.ActiveWorkbook.Path(çalışma kitabı adı olmadan) sadece yolun kendisi için veya Application.ActiveWorkbook.FullNameyolu için birlikte çalışma kitabı adı.


24
Etkin çalışma kitabı hangi çalışma kitabının etkin olduğuna bağlıdır. USwork Thisworkbook.path
Alwyn Miranda

6
Her ikisi de elbette farklı durumlarda yararlıdır. Ben makro bir eklenti çalışma kitabında (ThisWorkbook.path olurdu) ikamet, ancak kullanıcı (diğer ActiveWorkbook.path olurdu) gerektiği gibi diğer çalışma kitaplarına karşı kod çalıştırmak için gerekli anlamına gelir orijinal soru aldı.
BradC

2
Her zaman açık olmalı - bu çalışma kitabı ise, application.thisworkbook.path olmalıdır. Açılan bir çalışma kitabıysa, ad bir kümeyle tanımlanmalı, sonra application.Variablename.path (veya bağlı olarak tam yol) kullanılmalıdır.
Selkie

@Selkie Kodun kendisi çalışma kitabını açarsa, emin olun. Ancak, bu yalnızca bir eklenti çalışma kitabında bulunan ve kullanıcının makroyu çağırdığında şu anda açık olan hangi çalışma kitabında çalışması gereken yardımcı bir makro ise, o zaman ActiveWorkbookgereklidir.
BradC

3
Excel.ActiveWorkbook.Pathyalnızca dosya en az bir kez kaydedilmişse çalışır. Ayrıca, dosya hiç kaydedilmediyse, Excel.ActiveWorkbook.FullNameyalnızca dosya adını döndürür. Çalışma kitabının kaydedilip kaydedilmediğini kontrol etmek iyi bir fikir olabilir .
Mart'ta ChrisB

37

Her zaman güzel:

Dim myPath As String     
Dim folderPath As String 

folderPath = Application.ActiveWorkbook.Path    
myPath = Application.ActiveWorkbook.FullName

27

Makronun yürütüldüğü çalışma kitabının yolunu almak istiyorsanız - kullanın Application.ThisWorkbook.Path.
Application.ActiveWorkbook.Pathbazen beklenmedik sonuçlar üretebilir (örneğin makronuz birden çok çalışma kitabı arasında geçiş yapıyorsa).


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.