VBA में वर्तमान वर्कशीट का मार्ग कैसे प्राप्त करें?


141

मैंने एक ऐड-इन के रूप में एक मैक्रो लिखा था, और मुझे वर्तमान वर्कशीट का पथ प्राप्त करने की आवश्यकता है, जिस पर इसे निष्पादित किया जा रहा है। मैं यह कैसे करु? मैं फ़ाइल पथ (बस निर्देशिका) कैसे प्राप्त करूं?


क्या आपका मतलब है कि, एक वर्कशीट दी गई है, आप उस फ़ोल्डर को जानना चाहते हैं, जहां मूल कार्यपुस्तिका सहेजी गई है?
मथियास

जवाबों:


264

Application.ActiveWorkbook.Pathकेवल पथ के लिए उपयोग करें (कार्यपुस्तिका नाम के बिना) या कार्यपुस्तिका नाम के साथApplication.ActiveWorkbook.FullName पथ के लिए।


24
सक्रिय कार्यपुस्तिका निर्भर करती है कि कौन सी कार्यपुस्तिका सक्रिय है। USe Thisworkbook.path
अल्विन मिरांडा

6
दोनों अलग-अलग स्थितियों में उपयोगी हैं, निश्चित रूप से। मैंने मूल प्रश्न का अर्थ यह निकाला कि मैक्रो ऐड-इन वर्कबुक (जो कि ThisWorkbook.path होगा) में रहता था, लेकिन उपयोगकर्ता द्वारा आवश्यक के रूप में अन्य वर्कबुक के खिलाफ कोड चलाने की आवश्यकता थी (जो ActiveWorkbook.path होगी)।
ब्रैड मार्क

2
हमेशा स्पष्ट होना चाहिए - अगर यह कार्यपुस्तिका है, तो यह application.thisworkbook.path होना चाहिए। यदि यह एक कार्यपुस्तिका खोली जा रही है, तो नाम को एक सेट के साथ परिभाषित किया जाना चाहिए, फिर अनुप्रयोग। Variablename.path (या पूर्णपथ, निर्भर करता है)।
सेल्की

@Selkie यदि कोड स्वयं कार्यपुस्तिका खोलता है, तो सुनिश्चित करें। लेकिन अगर यह केवल एक सहायक मैक्रो है जो एक ऐड-इन वर्कबुक में रहता है और उपयोगकर्ता को वर्तमान में जो भी मैक्रो इनवॉइस करने के लिए खुला है, जो भी कार्यपुस्तिका पर काम करने की आवश्यकता है, वह ActiveWorkbookहै।
ब्रैड ऑक्ट

3
Excel.ActiveWorkbook.Pathकेवल तभी काम करता है जब फ़ाइल को कम से कम एक बार सहेजा गया हो। साथ ही, यदि फ़ाइल कभी सेव नहीं हुई है, तो Excel.ActiveWorkbook.FullNameकेवल फ़ाइल नाम लौटाता है। यह देखने के लिए एक अच्छा विचार हो सकता है कि क्या कार्यपुस्तिका को कभी भी सहेजा गया है
क्रिसबेल

37

हमेशा अच्छा है:

Dim myPath As String     
Dim folderPath As String 

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

27

यदि आप उस कार्यपुस्तिका का पथ प्राप्त करना चाहते हैं जहां से मैक्रो निष्पादित हो रहा है - उपयोग करें Application.ThisWorkbook.Path
Application.ActiveWorkbook.Pathकभी-कभी अनपेक्षित परिणाम उत्पन्न कर सकते हैं (जैसे कि यदि आपका मैक्रो कई कार्यपुस्तिकाओं के बीच स्विच करता है)।


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.