मैं वर्तमान में वर्कशीट को एक अलग फ़ाइल के रूप में सहेजने के लिए निम्नलिखित वीबीए का उपयोग कर रहा हूं, हालांकि यह वर्तमान फ़ोल्डर के बजाय वर्कबुक में मौजूद मेरे दस्तावेज़ फ़ोल्डर में सहेजता है।
मैं जो कुछ भी जोड़ सकता हूं उस पर मैं सहायता ढूंढ रहा हूं ताकि यह उसी फ़ोल्डर में सहेजा जा सके क्योंकि फ़ाइल पहले से ही है। मैं फ़ाइलपथ को हार्डकोड नहीं कर सकता क्योंकि यह हर महीने बदल जाएगा।
Sub SavePlan()
Dim Fname As String
Fname = Sheets("Main").Range("C6").Value
Sheets("Main").Copy
With ActiveWorkbook
.SaveAs Filename:=Fname
.Close
End With
End Sub
अग्रिम में धन्यवाद
3 जवाब
SaveAs को सहेजने के लिए पूर्ण पथ की तलाश है, इसलिए सक्रिय कार्यपुस्तिका में निर्देशिका प्राप्त करने के लिए ActiveWorkbook.Path
का उपयोग करें, फिर इसमें \ और Fname संलग्न करें (मान लें कि आप विंडोज़ में काम कर रहे हैं)।
Sub SavePlan()
Dim Fname As String
Fname = Sheets("Main").Range("C6").Value
Sheets("Main").Copy
With ActiveWorkbook
.SaveAs Filename := ActiveWorkbook.Path & "\" & Fname
.Close
End With
End Sub
ThisWorkbook
से प्राप्त करना है, ActiveWorkbook
से नहीं। एक बार जब आप "मुख्य" शीट की एक प्रति बना लेते हैं, वह सक्रिय कार्यपुस्तिका है, और इसमें वास्तविक .Path
नहीं है (क्योंकि यह स्पष्ट रूप से अभी तक सहेजा नहीं गया है)।
Sub SavePlan()
Dim Fname As String
With Sheets("Main")
Fname = .Parent.Path & "\" & .Range("C6").Value
.Copy
End With
With ActiveWorkbook
.SaveAs Filename:=Fname
.Close
End With
End Sub
एक नई कार्यपुस्तिका में बैकअप वर्कशीट
Option Explicit
Sub SavePlan()
Dim wb As Workbook: Set wb = ThisWorkbook ' workbook containing this code
Dim sws As Worksheet: Set sws = wb.Worksheets("Main")
Dim FolderPath As String: FolderPath = wb.Path
Dim dFileName As String: dFileName = sws.Range("C6").Value
Dim dFilePath As String
dFilePath = FolderPath & Application.PathSeparator & dFileName
sws.Copy ' copy to a new (destination) workbook
Dim dwb As Workbook: Set dwb = Workbooks(Workbooks.Count)
Application.DisplayAlerts = False ' overwrite without confirmation
dwb.SaveAs Filename:=dFilePath
Application.DisplayAlerts = True
dwb.Close SaveChanges:=False
MsgBox "Worksheet backed up.", vbInformation
End Sub
संबंधित सवाल
नए सवाल
excel
केवल एक्सेल ऑब्जेक्ट्स या फ़ाइलों, या जटिल फॉर्मूला विकास के खिलाफ प्रोग्रामिंग पर प्रश्नों के लिए। यदि आप लागू हो तो आप Excel टैग को VBA, VSTO, C #, VB.NET, PowerShell, OLE स्वचालन और अन्य प्रोग्रामिंग संबंधी टैग और प्रश्नों के साथ जोड़ सकते हैं। सुपर उपयोगकर्ता पर एकल कार्यपत्रक कार्यों के लिए एमएस एक्सेल के बारे में सामान्य सहायता उपलब्ध है।