एक्सेल (.xlsx) फ़ाइल को एक "स्प्लिट" कैसे किया जा सकता है जिसमें अलग-अलग शीट [n] .xlsx में कई शीट होते हैं?


17

मुझे लगता है कि यह शीर्षक इस सवाल के लिए कहता है, लेकिन आगे थोड़ा विस्तार करने के लिए:

मेरे पास एक .xlsx फ़ाइल है जिसमें कुछ दर्जन शीट हैं। मैं उन सभी शीटों को अलग-अलग .xlsx फ़ाइलों के रूप में आउटपुट करना चाहता हूं। उनमें से स्वचालित नामकरण आवश्यक नहीं है। क्या एक्सेल में शीट को एक अलग फाइल में एक्सपोर्ट करने का फंक्शन है?

जवाबों:


17

यह बिल्ट-इन फीचर नहीं है।

हालाँकि, यदि आप इस कोड को चलाते हैं, तो उसे कार्य करना चाहिए।

Sub SaveSheets()
    Dim strPath As String
    Dim ws As Worksheet

    Application.ScreenUpdating = False

    strPath = ActiveWorkbook.Path & "\"
    For Each ws In ThisWorkbook.Sheets
        ws.Copy
        'Use this line if you want to break any links:
        BreakLinks Workbooks(Workbooks.Count)
        Workbooks(Workbooks.Count).Close True, strPath & ws.Name & ".xlsx"
    Next

    Application.ScreenUpdating = True
End Sub

Sub BreakLinks(wb As Workbook)
    Dim lnk As Variant
    For Each lnk In wb.LinkSources(xlExcelLinks)
        wb.BreakLink lnk, xlLinkTypeExcelLinks
    Next
End Sub

कोड चलाने के लिए, निम्नलिखित कार्य करें:

  1. VBA संपादक खोलें ( Alt+ F11)
  2. शीर्ष बाएं कोने में पेड़ में, अपनी कार्यपुस्तिका पर राइट क्लिक करें और एक नया मॉड्यूल डालें
  3. इस मॉड्यूल में उपरोक्त कोड कॉपी करें
  4. VBA संपादक बंद करें
  5. मैक्रो को चलाने और चयन करने के लिए एक्सेल प्रेस Alt+ मेंF8SaveSheets

या मैं एमएस ऑफिस में VBA कैसे जोड़ूं?


धन्यवाद! रिवर्स के बारे में क्या? - इसे एक साथ वापस लाने के लिए? एक्सेल फ़ाइल में स्पष्ट रूप से "लिंक" शामिल थे (मैंने पहले इस सुविधा का उपयोग नहीं किया है), और विभाजन के बाद एक्सेल लिंक नहीं मिल सकता है (यह पहली शीट की तलाश है); क्या उन्हें विभाजित करने और उसी समय लिंक अपडेट करने के लिए दूर है / या केवल लिंक अपडेट करें?
eichoa3I

1
सवाल यह है कि आप लिंक को कैसे हैंडल करना चाहते हैं। आप उन्हें आसानी से मूल्यों के साथ डालने से जगह ले सकता है Workbooks(Workbooks.Count).BreakLinksके बाद ws.Copy...
पीटर अल्बर्ट

एक्सेल में एक कार्यपुस्तिका को पॉप अप करने के बाद मैंने लिंक को ठीक करने के लिए प्रेरित किया; मैंने इस डायलॉग बॉक्स पर क्लिक किया और अब लिंक सभी फाइलों के लिए काम करता है। मैं सोच रहा था कि अगर यह फ़ाइल या स्थानीय रूप से सहेजा गया था ...
eichoa3I

जब आप कहते हैं कि उन्हें वर्कबुक्स (Workbooks.Coun) के मानों से बदल दें। BreakLinks का मतलब है कि लिंक हटा दिए गए हैं, या ...? मुझे लगता है कि उन्हें संभालने का सबसे अच्छा तरीका बस उनके साथ दूर करना है (यानी, जब उपयोगकर्ता अब अलग-अलग एक्सेल फ़ाइलों को खोलते हैं, तो वे टूटी लिंक के बारे में चेतावनी नहीं देखते हैं)।
eichoa3I

क्षमा करें, कोशिश करें Workbooks(Workbooks.Count).BreakLink- sअंत में
पीटर अल्बर्ट

11
  1. जब आप एक्सेल शीट के टैब पर राइट क्लिक करते हैं, तो आप मूव या कॉपी चुन सकते हैं ...

    यहाँ छवि विवरण दर्ज करें

  2. परिणामी संवाद में, आप लक्ष्य कार्य पुस्तिका का चयन कर सकते हैं। चयन करें (नई पुस्तक)

    यहाँ छवि विवरण दर्ज करें

  3. ओके पर क्लिक करें । आपकी शीट अब एक नए दस्तावेज़ के अंदर है।


8

मैंने पीटर अल्बर्ट के समाधान की कोशिश की और यह मेरे लिए काम नहीं कर रहा था, इसलिए मुझे एक कंप्यूटर गीक की डायरी में इस पोस्ट ("एक्सेल - सेव वर्कशीट को अलग-अलग फाइलों के रूप में सहेजें" में एक समाधान मिला ।

यह बहुत अच्छा काम करता है। आपको उन चादरों का नाम बदलना चाहिए जिनमें .xlsएक्सटेंशन के साथ सही ढंग से नामित फ़ाइलों को प्राप्त करने के लिए डॉट्स हैं ।

Sub CreateNewWBS()
Dim wbThis As Workbook
Dim wbNew As Workbook
Dim ws As Worksheet
Dim strFilename As String

    Set wbThis = ThisWorkbook
    For Each ws In wbThis.Worksheets
        strFilename = wbThis.Path & "/" & ws.Name
        ws.Copy
        Set wbNew = ActiveWorkbook
        wbNew.SaveAs strFilename
        wbNew.Close
    Next ws
End Sub

पीटर मैक्बर्ट के पोस्ट से या मैं MS ऑफिस में VBA कैसे जोड़ूं, इस मैक्रो को बनाने और चलाने के लिए निर्देशों का उपयोग करें


1
मैंने पीटर अल्बर्ट के समाधान की भी कोशिश की और "रन-टाइम एरर'13 'एक त्रुटि थी: टाइप मिसमैच। सौभाग्य से इस उत्तर में समाधान मेरे लिए काम करता है।
बिन

मैं एक ही नाम से मौजूदा फ़ाइलों को अधिलेखित करने के लिए इसे कैसे प्राप्त कर सकता हूं?
DAE

मुझे इसकी आवश्यकता नहीं थी क्योंकि प्रत्येक डंप एक अलग फ़ोल्डर में जाता है। शायद इस धागे की
hrvoj3e

आपके समाधान ने मेरे लिए काम किया :)
मुहम्मद वहीद
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.