2010-05-11 13 views
102

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

+0

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

उत्तर

192

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

+8

सक्रिय कार्यपुस्तिका इस बात पर निर्भर करती है कि कौन सी कार्यपुस्तिका सक्रिय है। इस कार्यपुस्तिका का उपयोग करें –

+3

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

+1

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

28

हमेशा अच्छा करने के लिए:

Dim myPath As String  
Dim folderPath As String 

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

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

संबंधित मुद्दे

 संबंधित मुद्दे