2012-07-19 12 views
5

मेरे पास एक कोड है जो फ़ाइल का पूरा पथ निकालता है, एक्सटेंशन को घटाता है, और मैं इसे बिना किसी विस्तार के फ़ाइल के नाम को स्टोर करने के लिए संशोधित करने की कोशिश कर रहा हूं।मैक्रो का उपयोग करके विस्तार या पूर्ण पथ के बिना, वर्ड दस्तावेज़ का वर्तमान फ़ाइल नाम कैसे प्राप्त करूं?

Sub ShowFilename() 

Dim pathName As String 
With ActiveDocument 
If Len(.Path) = 0 Then 
.Save 
End If 
If Right(.Name, 1) = "x" Then 
pathName = Left$(.FullName, (Len(.FullName) - 5)) 
Else 
pathName = Left$(.FullName, (Len(.FullName) - 4)) 
End If 
End With 
MsgBox pathName 

End Sub 

यह C:\Users\test को प्रदर्शित करता है, और दस्तावेज़ का नाम test.docm है। मैं केवल फ़ाइल नाम प्रदर्शित करने के लिए इसे कैसे संशोधित कर सकता हूं? क्या मुझे \ के साथ स्ट्रिंग को विभाजित करने और अंतिम भाग निकालने की आवश्यकता है?

उत्तर

6
Sub ShowFilename() 
Dim pathName As String 
Dim o As Document 
Set o = ActiveDocument 
If InStrRev(o.Name, ".") <> 0 Then 
    MsgBox Left(o.Name, InStrRev(o.Name, ".") - 1) 
Else 
    MsgBox o.Name 
End If 
End Sub 

मैंने शुरुआत में इसे बिना पोस्ट किए पोस्ट किया था, अगर फ़ाइल कभी सहेजी नहीं गई थी, या कोई एक्सटेंशन नहीं था तो त्रुटि होगी।

1

के लिए तरीके का एक सेट के रूप में मैं एफएसओ का उपयोग कर सक्षम लिखने कोड नहीं था (यह केवल नहीं है वीबी के लिए, यह क्या है?), मैं इस एक काफी आत्म व्याख्यात्मक :)

Dim oldFilename As String 

oldFilename = ActiveDocument.Name 
If Right(oldFilename, 5) = ".docx" Then 
    MsgBox ("subtract .docx") 
    oldFilename = Left(oldFilename, Len(oldFilename) - 5) 
ElseIf Right(oldFilename, 4) = ".doc" Then 
    MsgBox ("subtract .doc") 
    oldFilename = Left(oldFilename, Len(oldFilename) - 4) 
Else 
    MsgBox ("no extension yet") 
End If 
+0

आप वीबीए के साथ एफएसओ का उपयोग कर सकते हैं। –

0

Yeish लिखा है, मैं ऐसा नहीं करते!

hypothetically, आप शब्द की एक पूरी फ़ोल्डरों के लायक है और आप एक्सटेंशन की जरूरत नहीं है, तो आप सिर्फ नाम चाहते हैं। क्या आप क्या करेंगे एक्सटेंशन प्रकार फ़ाइल नाम

Function removeExtension(myDoc as Document, extension as String) 
Dim documentWithoutExtension as String 

documentWithoutExtension = replace(myDoc.Name, extension, "") 

removeExtension = documentWithoutExtension 

End Function 
0

मेरे लिए यह एक काम करता है से निकालना चाहते हैं के साथ इस समारोह के माध्यम से शब्द डॉक्स के माध्यम से जाने के लिए और उन्हें पार्स है।

Sub ShowFilename() 
MsgBox ActiveWindow.Parent 
End Sub 
संबंधित मुद्दे

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