2015-10-06 8 views
5

के साथ संवाद के रूप में सहेजें मेरे पास एक वीबीए मैक्रो है जो वर्तमान दस्तावेज़ में कुछ बदलाव करता है और इसके लिए फ़ाइल नाम निर्धारित करता है - यदि दस्तावेज़ उस फ़ाइल नाम के रूप में सहेजा नहीं गया है, तो उपयोगकर्ता को अभी भी उपयोगकर्ता को चाहिए ऐसा करने के लिए कहा जाए (लेकिन डिफ़ॉल्ट सेटिंग को बदलने में सक्षम होना चाहिए)।वीबीए वर्ड - प्रारंभिक फ़ाइल नाम

मुझे दो संभावनाएं मिलीं जो दोनों सही नहीं हैं (मुझे उन दोनों के मिश्रण की आवश्यकता होगी)।

पहले दृष्टिकोण:

Application.Dialogs(wdDialogFileSaveAs).Show 

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

दूसरा दृष्टिकोण:

Application.FileDialog(msoFileDialogSaveAs).InitialFileName = filename 
Dim choice As Integer 
choice = Application.FileDialog(msoFileDialogSaveAs).Show 
If choice <> 0 Then 
    filename = Application.FileDialog(msoFileDialogSaveAs).SelectedItems(1) 
    Call ActiveDocument.SaveAs(filename:=filename, FileFormat:=wdFormatDocumentDefault) 
End If 

FileDialog एक फ़ाइल नाम ही चयन करेंगे, तो हम यह स्पष्ट रूप को बचाने के लिए है। यह दृष्टिकोण filename दिखाएगा, लेकिन यदि उपयोगकर्ता प्रत्यय को .pdf में बदलता है तो फ़ाइल अभी भी .docx प्रारूप में सहेजी जाएगी (प्रत्यय .pdf का उपयोग करके)। दुर्लभ मामले के लिए उपयोगकर्ता को .docx से भिन्न प्रारूप की आवश्यकता के लिए यहां मामलों का विशाल भेद करने की योजना नहीं थी। इस दूसरे दृष्टिकोण का उपयोग कर फ़ाइल को सही प्रारूप में सहेजने का कोई आसान तरीका है?

उत्तर

6

आप

Application.FileDialog(msoFileDialogSaveAs).Execute 
+0

साथ कॉल ActiveDocument.SaveAs लाइन की जगह आप लानत सही हो की कोशिश की है, धन्यवाद – outofmind

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