[excel] सीएसवी फाइलों को अलग करने के लिए प्रत्येक शीट को कार्यपुस्तिका में सहेजें



Answers

@AlexDuggleby: आपको वर्कशीट की प्रतिलिपि बनाने की आवश्यकता नहीं है, आप उन्हें सीधे सहेज सकते हैं। उदाहरण के लिए:

Public Sub SaveWorksheetsAsCsv()
Dim WS As Excel.Worksheet
Dim SaveToDirectory As String

    SaveToDirectory = "C:\"

    For Each WS In ThisWorkbook.Worksheets
        WS.SaveAs SaveToDirectory & WS.Name, xlCSV
    Next

End Sub

केवल संभावित समस्या यह है कि आपकी कार्यपुस्तिका को अंतिम सीएसवी फ़ाइल के रूप में सहेजा जाता है। यदि आपको मूल कार्यपुस्तिका रखने की आवश्यकता है तो आपको इसे सहेजने की आवश्यकता होगी।

Question

मैक्रो के साथ CSV फाइलों को अलग करने के लिए मैं प्रत्येक शीट को Excel कार्यपुस्तिका में कैसे सहेजूं?

मेरे पास एकाधिक चादरों के साथ एक एक्सेल है और मैं एक मैक्रो की तलाश में था जो प्रत्येक शीट को एक अलग CSV (comma separated file) सहेज लेगा। एक्सेल आपको विभिन्न CSV फाइलों में सभी चादरों को सहेजने की अनुमति नहीं देगा।




ग्राहम के उत्तर पर बिल्डिंग, अतिरिक्त कोड कार्यपुस्तिका को इसके मूल प्रारूप में वापस अपने मूल स्थान में सहेजता है।

Public Sub SaveWorksheetsAsCsv()

Dim WS As Excel.Worksheet
Dim SaveToDirectory As String

Dim CurrentWorkbook As String
Dim CurrentFormat As Long

 CurrentWorkbook = ThisWorkbook.FullName
 CurrentFormat = ThisWorkbook.FileFormat
' Store current details for the workbook

      SaveToDirectory = "C:\"

      For Each WS In ThisWorkbook.Worksheets
          WS.SaveAs SaveToDirectory & WS.Name, xlCSV
      Next

 Application.DisplayAlerts = False
  ThisWorkbook.SaveAs Filename:=CurrentWorkbook, FileFormat:=CurrentFormat
 Application.DisplayAlerts = True
' Temporarily turn alerts off to prevent the user being prompted
'  about overwriting the original file.

End Sub



कृपया वॉन पुकी के जवाब में देखें , उसके लिए सभी क्रेडिट।

 Sub asdf()
Dim ws As Worksheet, newWb As Workbook

Application.ScreenUpdating = False
For Each ws In Sheets(Array("EID Upload", "Wages with Locals Upload", "Wages without Local Upload"))
   ws.Copy
   Set newWb = ActiveWorkbook
   With newWb
      .SaveAs ws.Name, xlCSV
      .Close (False)
   End With
Next ws
Application.ScreenUpdating = True

End Sub



Related