मुझे यह सवाल पहले पूछा गया था, लेकिन इसका जवाब कभी नहीं मिला। मेरे पास कुछ VBA कोड हैं जो विभिन्न फ़ाइलों को प्रारूपित करते हैं और उन्हें एक एक्सेल स्प्रेडशीट पर आउटपुट करते हैं, और फिर दो अलग-अलग निर्देशिकाओं में प्रतियां सहेजते हैं। हालाँकि, मुझे जो परेशानी हो रही है वह यह है कि यह एक खाली कार्यपुस्तिका को खुला छोड़ देता है और मुझे नहीं पता कि इसे कैसे बंद किया जाए। मैंने Workbooks.Close, और Application.Quit की कोशिश की है लेकिन न तो काम किया है। किसी भी तरह की सहायता का स्वागत किया जाएगा। यहाँ मेरे कोड का हिस्सा है जिसका मैं उल्लेख कर रहा हूँ:

sSaveAsFilePath = "\\Filesrv02\test\remit" + ".csv"
sSaveAsFilePath2 = "\\Filesrv02\backup\remit" + Format(Date, "mmddyy") + ".csv"

Application.DisplayAlerts = False
ChDir "\\Filesrv02\test"
ActiveWorkbook.SaveAs FileName:=sSaveAsFilePath, _
       FileFormat:=xlCSV, CreateBackup:=False
      'ActiveWorkbook.Close False

ChDir "\\Filesrv02\Backup"
       ActiveWorkbook.SaveAs FileName:=sSaveAsFilePath2, _
       FileFormat:=xlCSV, CreateBackup:=False
       ActiveWorkbook.Close True
Application.DisplayAlerts = False
MsgBox ("done")

End Sub
0
justkrys 30 नवम्बर 2015, 22:58

2 जवाब

सबसे बढ़िया उत्तर

चूंकि आप विभिन्न स्थानों में सहेजने के लिए अपनी कार्यपुस्तिका से केवल एक शीट की प्रतिलिपि बना रहे हैं, इसलिए आप उस शीट को कार्यपुस्तिका से बाहर कॉपी कर सकते हैं और उसे किसी अन्य स्थान पर सहेज सकते हैं। यह आपकी मूल कार्यपुस्तिका को बरकरार रखेगा, और एक रहस्यमय रिक्त कार्यपुस्तिका नहीं बनाएगा। इसके अलावा, ध्यान दें कि मैंने चर के साथ सभी वर्कबुक और वर्कशीट कैसे योग्य हैं।

sSaveAsFilePath = "\\Filesrv02\test\remit" + ".csv"
sSaveAsFilePath2 = "\\Filesrv02\backup\remit" + Format(Date, "mmddyy") + ".csv"

Application.DisplayAlerts = False

Dim wb As Workbook, wbC As Workbook, ws As Worksheet

Set wb = ThisWorkbook
Set ws = ws.Sheets("mySheet") 'change name as needed

'create and save test version
ws.Copy

Set wbC = ActiveWorkbook

With wbC
    .SaveAs Filename:=sSaveAsFilePath, FileFormat:=xlCSV, CreateBackup:=False
    .Close
End With

'create and save backup version
ws.Copy

Set wbC = ActiveWorkbook

With wbC
    .SaveAs Filename:=sSaveAsFilePath2, FileFormat:=xlCSV, CreateBackup:=False
    .Close
End With

Application.DisplayAlerts = False

MsgBox ("done")
1
Scott Holtzman 1 पद 2015, 13:55

सेव करने से पहले एक नई वर्कबुक बनाएं

    Application.Workbooks.Add
    ActiveWorkbook.SaveAs FileName:=sSaveAsFilePath, _
           FileFormat:=xlCSV, CreateBackup:=False
    ActiveWorkbook.Close False
0
Eric K. 1 पद 2015, 01:57