VBA के साथ एकाधिक एक्सेल तालिकाओं को एक एकल वर्ड दस्तावेज़ में संयोजित करना

VBA के साथ एकाधिक एक्सेल तालिकाओं को एक एकल वर्ड दस्तावेज़ में संयोजित करना
VBA के साथ एकाधिक एक्सेल तालिकाओं को एक एकल वर्ड दस्तावेज़ में संयोजित करना

एक्सेल डेटा को वर्ड में कुशलतापूर्वक मर्ज करना

विभिन्न प्लेटफार्मों पर डेटा प्रबंधित करना एक बोझिल काम हो सकता है, खासकर जब आपको एक्सेल से वर्ड दस्तावेज़ में कई तालिकाओं को संकलित करने की आवश्यकता होती है। वीबीए का उपयोग करके, आप वांछित प्रारूप और संरचना को बनाए रखते हुए डेटा के निर्बाध हस्तांतरण को सुनिश्चित करते हुए इस प्रक्रिया को स्वचालित कर सकते हैं।

यह आलेख एक वीबीए मैक्रो की खोज करता है जो वर्तमान में एक्सेल तालिकाओं से तीन अलग-अलग वर्ड दस्तावेज़ बनाता है। हम स्पष्टता और संगठन के लिए प्रत्येक तालिका के बाद पेज ब्रेक के साथ, एक ही वर्ड दस्तावेज़ में सभी तालिकाओं को बनाने के लिए कोड को संशोधित करने का तरीका प्रदर्शित करेंगे।

आज्ञा विवरण
Set wdApp = New Word.Application Word एप्लिकेशन का एक नया उदाहरण आरंभ करता है।
wdDoc.Characters.Last.InsertBreak Type:=wdPageBreak दस्तावेज़ के अंत में एक पृष्ठ विराम सम्मिलित करता है।
.Rows(1).HeadingFormat = True निर्दिष्ट करता है कि तालिका की पहली पंक्ति एक हेडर पंक्ति है।
.Tables.Add(Range:=wdDoc.Range, NumRows:=2, NumColumns:=lCol) निर्दिष्ट पंक्तियों और स्तंभों के साथ Word दस्तावेज़ में एक नई तालिका जोड़ता है।
With wdTbl.Borders तालिका के अंदर और बाहर की रेखाओं के लिए बॉर्डर शैली सेट करता है।
wdApp.Visible = True वर्ड एप्लिकेशन को उपयोगकर्ता के लिए दृश्यमान बनाता है।
If (r - startRow + 2) >If (r - startRow + 2) > .Rows.Count Then .Rows.Add यदि वर्तमान पंक्ति मौजूदा पंक्ति संख्या से अधिक है तो तालिका में एक नई पंक्ति जोड़ता है।
Set wdDoc = .Documents.Add Word एप्लिकेशन में एक नया दस्तावेज़ बनाता है।

तालिकाओं के संयोजन के लिए वीबीए मैक्रो को समझना

प्रदान की गई स्क्रिप्ट दर्शाती है कि वीबीए का उपयोग करके एकाधिक एक्सेल तालिकाओं से डेटा को एकल वर्ड दस्तावेज़ में स्थानांतरित करने की प्रक्रिया को कैसे स्वचालित किया जाए। मुख्य लिपि, Sub ConsolidateTablesInOneDocument(), वर्ड एप्लिकेशन के एक नए इंस्टेंस को आरंभ करता है Set wdApp = New Word.Application और का उपयोग करके एक नया दस्तावेज़ बनाता है Set wdDoc = .Documents.Add. यह Excel में उन पंक्तियों की पहचान करता है जहां तालिकाएँ रिक्त कक्षों की जाँच करके समाप्त होती हैं और इन स्थितियों को वेरिएबल्स में संग्रहीत करती हैं First और Second. यह स्क्रिप्ट को यह जानने की अनुमति देता है कि प्रत्येक तालिका कहां समाप्त होती है और कहां शुरू होती है। फिर मैक्रो का उपयोग करके Word में तालिकाएँ बनाई जाती हैं .Tables.Add(Range:=wdDoc.Range, NumRows:=2, NumColumns:=lCol) और इन तालिकाओं को एक्सेल के डेटा से भर देता है।

यह सुनिश्चित करने के लिए कि प्रत्येक तालिका स्पष्ट रूप से अलग है, स्क्रिप्ट प्रत्येक तालिका के उपयोग के बाद एक पृष्ठ विराम सम्मिलित करती है wdDoc.Characters.Last.InsertBreak Type:=wdPageBreak. CreateTable प्रत्येक तालिका को बनाने और प्रारूपित करने के लिए सबरूटीन को तीन बार कॉल किया जाता है। यह सबरूटीन हेडर को परिभाषित करता है, पंक्तियों और स्तंभों को पॉप्युलेट करता है, और तालिकाओं पर बॉर्डर शैलियों को लागू करता है .Rows(1).Range.Font.Bold = True और With wdTbl.Borders. अंत में, मैक्रो वर्ड एप्लिकेशन की दृश्यता को सत्य पर सेट करता है wdApp.Visible = True, यह सुनिश्चित करते हुए कि उपयोगकर्ता जेनरेट किए गए दस्तावेज़ को देख सकता है। यह दृष्टिकोण स्पष्टता और प्रारूप को बनाए रखते हुए एक्सेल से कई तालिकाओं को एक ही वर्ड दस्तावेज़ में प्रभावी ढंग से समेकित करता है।

एकाधिक एक्सेल तालिकाओं को एक वर्ड दस्तावेज़ में समेकित करना

यह स्क्रिप्ट दर्शाती है कि प्रत्येक तालिका के बाद पेज ब्रेक के साथ एकाधिक तालिकाओं को एक ही वर्ड दस्तावेज़ में संयोजित करने के लिए Excel में VBA का उपयोग कैसे करें।

Sub ConsolidateTablesInOneDocument()
    Dim wdApp As New Word.Application
    Dim wdDoc As Word.Document
    Dim wdTbl As Word.Table
    Dim xlSht As Worksheet
    Dim lRow As Integer, lCol As Integer
    Dim r As Integer, c As Integer
    Dim Blanks As Integer, First As Integer, Second As Integer
    lRow = Sheets("Feedback Sheets").Range("A1000").End(xlUp).Row - 2
    Blanks = 0
    i = 1
    Do While i <= lRow
        Set rRng = Worksheets("Feedback Sheets").Range("A" & i)
        If IsEmpty(rRng.Value) Then
            Blanks = Blanks + 1
            If Blanks = 1 Then First = i
            If Blanks = 2 Then Second = i
        End If
        i = i + 1
    Loop
    Set xlSht = ActiveSheet: lCol = 5
    With wdApp
        .Visible = True
        Set wdDoc = .Documents.Add
        Call CreateTable(wdDoc, xlSht, 1, First, lCol)
        wdDoc.Characters.Last.InsertBreak Type:=wdPageBreak
        Call CreateTable(wdDoc, xlSht, First + 1, Second, lCol)
        wdDoc.Characters.Last.InsertBreak Type:=wdPageBreak
        Call CreateTable(wdDoc, xlSht, Second + 1, lRow, lCol)
    End With
End Sub
Sub CreateTable(wdDoc As Word.Document, xlSht As Worksheet, startRow As Integer, endRow As Integer, lCol As Integer)
    Dim wdTbl As Word.Table
    Dim r As Integer, c As Integer
    Set wdTbl = wdDoc.Tables.Add(Range:=wdDoc.Range, NumRows:=2, NumColumns:=lCol)
    With wdTbl
        .Rows(1).Range.Font.Bold = True
        .Rows(1).HeadingFormat = True
        .Cell(1, 1).Range.Text = "Header 1"
        If lCol > 1 Then .Cell(1, 2).Range.Text = "Header 2"
        If lCol > 2 Then .Cell(1, 3).Range.Text = "Header 3"
        For r = startRow To endRow
            If (r - startRow + 2) > .Rows.Count Then .Rows.Add
            For c = 1 To lCol
                .Cell(r - startRow + 2, c).Range.Text = xlSht.Cells(r, c).Text
            Next c
        Next r
    End With
    With wdTbl.Borders
        .InsideLineStyle = wdLineStyleSingle
        .OutsideLineStyle = wdLineStyleDouble
    End With
End Sub

एक्सेल डेटा को वीबीए के साथ वर्ड में मर्ज करना

यह स्क्रिप्ट उचित फ़ॉर्मेटिंग और पेज ब्रेक सुनिश्चित करते हुए, एक्सेल शीट से तालिकाओं को एक एकल वर्ड दस्तावेज़ में मर्ज करने के लिए VBA का उपयोग करती है।

Sub MergeTablesIntoWord()
    Dim wdApp As New Word.Application
    Dim wdDoc As Word.Document
    Dim wdTbl As Word.Table
    Dim xlSht As Worksheet
    Dim lRow As Integer, lCol As Integer
    Dim r As Integer, c As Integer
    Dim Blanks As Integer, First As Integer, Second As Integer
    lRow = Sheets("Feedback Sheets").Range("A1000").End(xlUp).Row - 2
    Blanks = 0
    i = 1
    Do While i <= lRow
        Set rRng = Worksheets("Feedback Sheets").Range("A" & i)
        If IsEmpty(rRng.Value) Then
            Blanks = Blanks + 1
            If Blanks = 1 Then First = i
            If Blanks = 2 Then Second = i
        End If
        i = i + 1
    Loop
    Set xlSht = ActiveSheet: lCol = 5
    With wdApp
        .Visible = True
        Set wdDoc = .Documents.Add
        Set wdTbl = wdDoc.Tables.Add(Range:=wdDoc.Range, NumRows:=2, NumColumns:=lCol)
        PopulateTable wdTbl, xlSht, 1, First, lCol
        wdDoc.Characters.Last.InsertBreak Type:=wdPageBreak
        Set wdTbl = wdDoc.Tables.Add(Range:=wdDoc.Range, NumRows:=2, NumColumns:=lCol)
        PopulateTable wdTbl, xlSht, First + 1, Second, lCol
        wdDoc.Characters.Last.InsertBreak Type:=wdPageBreak
        Set wdTbl = wdDoc.Tables.Add(Range:=wdDoc.Range, NumRows:=2, NumColumns:=lCol)
        PopulateTable wdTbl, xlSht, Second + 1, lRow, lCol
    End With
End Sub
Sub PopulateTable(wdTbl As Word.Table, xlSht As Worksheet, startRow As Integer, endRow As Integer, lCol As Integer)
    Dim r As Integer, c As Integer
    With wdTbl
        .Rows(1).Range.Font.Bold = True
        .Rows(1).HeadingFormat = True
        .Cell(1, 1).Range.Text = "Header 1"
        If lCol > 1 Then .Cell(1, 2).Range.Text = "Header 2"
        If lCol > 2 Then .Cell(1, 3).Range.Text = "Header 3"
        For r = startRow To endRow
            If (r - startRow + 2) > .Rows.Count Then .Rows.Add
            For c = 1 To lCol
                .Cell(r - startRow + 2, c).Range.Text = xlSht.Cells(r, c).Text
            Next c
        Next r
    End With
    With wdTbl.Borders
        .InsideLineStyle = wdLineStyleSingle
        .OutsideLineStyle = wdLineStyleDouble
    End With
End Sub

VBA के साथ वर्ड में टेबल्स बनाना और फ़ॉर्मेट करना

वीबीए का उपयोग करके एक्सेल से वर्ड में डेटा के हस्तांतरण को स्वचालित करते समय, यह समझना महत्वपूर्ण है कि तालिकाओं को प्रभावी ढंग से कैसे प्रबंधित और प्रारूपित किया जाए। एक प्रमुख पहलू यह सुनिश्चित करना है कि संरचना और पठनीयता दोनों को बनाए रखते हुए डेटा सही ढंग से स्थानांतरित किया जाए। इसके लिए VBA कमांड को समझने की आवश्यकता है जो तालिका निर्माण, फ़ॉर्मेटिंग और पेज ब्रेक के सम्मिलन को नियंत्रित करते हैं। उदाहरण के लिए, आदेश Set wdTbl = wdDoc.Tables.Add(Range:=wdDoc.Range, NumRows:=2, NumColumns:=lCol) Excel डेटा के आधार पर पंक्तियों और स्तंभों की संख्या निर्दिष्ट करते हुए, Word दस्तावेज़ में एक नई तालिका जोड़ने के लिए उपयोग किया जाता है।

एक अन्य महत्वपूर्ण तत्व तालिका को स्वरूपित करना है। जैसे आदेश .Rows(1).Range.Font.Bold = True हेडर दर्शाते हुए पहली पंक्ति को बोल्ड बनाएं wdTbl.Borders तालिका के अंदर और बाहर दोनों लाइनों के लिए बॉर्डर शैलियों को सेट करने के लिए उपयोग किया जाता है। इसके अलावा, यह सुनिश्चित करने के लिए कि प्रत्येक तालिका एक अलग पृष्ठ पर दिखाई दे, पृष्ठ विराम सम्मिलित करना आवश्यक है, जिसका उपयोग किया जाता है wdDoc.Characters.Last.InsertBreak Type:=wdPageBreak. ये आदेश सामूहिक रूप से यह सुनिश्चित करते हैं कि अंतिम दस्तावेज़ सुव्यवस्थित और पेशेवर रूप से प्रारूपित है।

वर्ड और एक्सेल के लिए वीबीए मैक्रोज़ के बारे में अक्सर पूछे जाने वाले प्रश्न

  1. मैं वीबीए का उपयोग करके एक नया वर्ड एप्लिकेशन कैसे शुरू करूं?
  2. उपयोग Set wdApp = New Word.Application Word एप्लिकेशन का एक नया उदाहरण प्रारंभ करने के लिए।
  3. मैं VBA का उपयोग करके किसी Word दस्तावेज़ में पेज ब्रेक कैसे सम्मिलित कर सकता हूँ?
  4. के साथ एक पेज ब्रेक डालें wdDoc.Characters.Last.InsertBreak Type:=wdPageBreak.
  5. मैं VBA का उपयोग करके किसी Word दस्तावेज़ में तालिका कैसे जोड़ूँ?
  6. का उपयोग करके एक तालिका जोड़ें wdDoc.Tables.Add(Range:=wdDoc.Range, NumRows:=2, NumColumns:=lCol).
  7. मैं तालिका की पहली पंक्ति को हेडर के रूप में कैसे प्रारूपित कर सकता हूं?
  8. पहली पंक्ति को हेडर के रूप में सेट करें .Rows(1).HeadingFormat = True और इसे प्रयोग करके बोल्ड बनाएं .Rows(1).Range.Font.Bold = True.
  9. मैं VBA का उपयोग करके Word में किसी तालिका के लिए सीमाएँ कैसे निर्धारित करूँ?
  10. के साथ सीमाएँ निर्धारित करें wdTbl.Borders, अंदर और बाहर की रेखाओं के लिए शैलियाँ निर्दिष्ट करना।
  11. मैं वीबीए में वर्ड एप्लिकेशन को उपयोगकर्ता के लिए कैसे दृश्यमान बना सकता हूं?
  12. दृश्यता को इसके साथ सेट करें wdApp.Visible = True.
  13. यदि वर्तमान पंक्ति मौजूदा पंक्ति संख्या से अधिक हो तो किसी तालिका में नई पंक्ति जोड़ने के लिए किस कमांड का उपयोग किया जाता है?
  14. के साथ एक नई पंक्ति जोड़ें If (r - startRow + 2) > .Rows.Count Then .Rows.Add.
  15. मैं VBA का उपयोग करके Word में एक नया दस्तावेज़ कैसे बना सकता हूँ?
  16. के साथ एक नया दस्तावेज़ बनाएं Set wdDoc = .Documents.Add.

अंतिम विचार

VBA का उपयोग करके एकाधिक Excel तालिकाओं को एक एकल Word दस्तावेज़ में संयोजित करना डेटा स्थानांतरण और फ़ॉर्मेटिंग की प्रक्रिया को सुव्यवस्थित करता है। तालिका निर्माण, फ़ॉर्मेटिंग और पेज ब्रेक को स्वचालित करके, मैक्रो यह सुनिश्चित करता है कि अंतिम दस्तावेज़ सुव्यवस्थित और पेशेवर रूप से प्रस्तुत किया गया है। यह दृष्टिकोण समय बचाता है और त्रुटियों के जोखिम को कम करता है, जिससे यह विभिन्न प्लेटफार्मों पर डेटा को प्रबंधित और प्रस्तुत करने के लिए एक कुशल समाधान बन जाता है।