एक्सेल डेटा को वर्ड में कुशलतापूर्वक मर्ज करना
विभिन्न प्लेटफार्मों पर डेटा प्रबंधित करना एक बोझिल काम हो सकता है, खासकर जब आपको एक्सेल से वर्ड दस्तावेज़ में कई तालिकाओं को संकलित करने की आवश्यकता होती है। वीबीए का उपयोग करके, आप वांछित प्रारूप और संरचना को बनाए रखते हुए डेटा के निर्बाध हस्तांतरण को सुनिश्चित करते हुए इस प्रक्रिया को स्वचालित कर सकते हैं।
यह आलेख एक वीबीए मैक्रो की खोज करता है जो वर्तमान में एक्सेल तालिकाओं से तीन अलग-अलग वर्ड दस्तावेज़ बनाता है। हम स्पष्टता और संगठन के लिए प्रत्येक तालिका के बाद पेज ब्रेक के साथ, एक ही वर्ड दस्तावेज़ में सभी तालिकाओं को बनाने के लिए कोड को संशोधित करने का तरीका प्रदर्शित करेंगे।
| आज्ञा | विवरण |
|---|---|
| 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.ApplicationDim wdDoc As Word.DocumentDim wdTbl As Word.TableDim xlSht As WorksheetDim lRow As Integer, lCol As IntegerDim r As Integer, c As IntegerDim Blanks As Integer, First As Integer, Second As IntegerlRow = Sheets("Feedback Sheets").Range("A1000").End(xlUp).Row - 2Blanks = 0i = 1Do While i <= lRowSet rRng = Worksheets("Feedback Sheets").Range("A" & i)If IsEmpty(rRng.Value) ThenBlanks = Blanks + 1If Blanks = 1 Then First = iIf Blanks = 2 Then Second = iEnd Ifi = i + 1LoopSet xlSht = ActiveSheet: lCol = 5With wdApp.Visible = TrueSet wdDoc = .Documents.AddCall CreateTable(wdDoc, xlSht, 1, First, lCol)wdDoc.Characters.Last.InsertBreak Type:=wdPageBreakCall CreateTable(wdDoc, xlSht, First + 1, Second, lCol)wdDoc.Characters.Last.InsertBreak Type:=wdPageBreakCall CreateTable(wdDoc, xlSht, Second + 1, lRow, lCol)End WithEnd SubSub CreateTable(wdDoc As Word.Document, xlSht As Worksheet, startRow As Integer, endRow As Integer, lCol As Integer)Dim wdTbl As Word.TableDim r As Integer, c As IntegerSet 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 endRowIf (r - startRow + 2) > .Rows.Count Then .Rows.AddFor c = 1 To lCol.Cell(r - startRow + 2, c).Range.Text = xlSht.Cells(r, c).TextNext cNext rEnd WithWith wdTbl.Borders.InsideLineStyle = wdLineStyleSingle.OutsideLineStyle = wdLineStyleDoubleEnd WithEnd Sub
एक्सेल डेटा को वीबीए के साथ वर्ड में मर्ज करना
यह स्क्रिप्ट उचित फ़ॉर्मेटिंग और पेज ब्रेक सुनिश्चित करते हुए, एक्सेल शीट से तालिकाओं को एक एकल वर्ड दस्तावेज़ में मर्ज करने के लिए VBA का उपयोग करती है।
Sub MergeTablesIntoWord()Dim wdApp As New Word.ApplicationDim wdDoc As Word.DocumentDim wdTbl As Word.TableDim xlSht As WorksheetDim lRow As Integer, lCol As IntegerDim r As Integer, c As IntegerDim Blanks As Integer, First As Integer, Second As IntegerlRow = Sheets("Feedback Sheets").Range("A1000").End(xlUp).Row - 2Blanks = 0i = 1Do While i <= lRowSet rRng = Worksheets("Feedback Sheets").Range("A" & i)If IsEmpty(rRng.Value) ThenBlanks = Blanks + 1If Blanks = 1 Then First = iIf Blanks = 2 Then Second = iEnd Ifi = i + 1LoopSet xlSht = ActiveSheet: lCol = 5With wdApp.Visible = TrueSet wdDoc = .Documents.AddSet wdTbl = wdDoc.Tables.Add(Range:=wdDoc.Range, NumRows:=2, NumColumns:=lCol)PopulateTable wdTbl, xlSht, 1, First, lColwdDoc.Characters.Last.InsertBreak Type:=wdPageBreakSet wdTbl = wdDoc.Tables.Add(Range:=wdDoc.Range, NumRows:=2, NumColumns:=lCol)PopulateTable wdTbl, xlSht, First + 1, Second, lColwdDoc.Characters.Last.InsertBreak Type:=wdPageBreakSet wdTbl = wdDoc.Tables.Add(Range:=wdDoc.Range, NumRows:=2, NumColumns:=lCol)PopulateTable wdTbl, xlSht, Second + 1, lRow, lColEnd WithEnd SubSub PopulateTable(wdTbl As Word.Table, xlSht As Worksheet, startRow As Integer, endRow As Integer, lCol As Integer)Dim r As Integer, c As IntegerWith 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 endRowIf (r - startRow + 2) > .Rows.Count Then .Rows.AddFor c = 1 To lCol.Cell(r - startRow + 2, c).Range.Text = xlSht.Cells(r, c).TextNext cNext rEnd WithWith wdTbl.Borders.InsideLineStyle = wdLineStyleSingle.OutsideLineStyle = wdLineStyleDoubleEnd WithEnd 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. ये आदेश सामूहिक रूप से यह सुनिश्चित करते हैं कि अंतिम दस्तावेज़ सुव्यवस्थित और पेशेवर रूप से प्रारूपित है।
वर्ड और एक्सेल के लिए वीबीए मैक्रोज़ के बारे में अक्सर पूछे जाने वाले प्रश्न
- मैं वीबीए का उपयोग करके एक नया वर्ड एप्लिकेशन कैसे शुरू करूं?
- उपयोग Set wdApp = New Word.Application Word एप्लिकेशन का एक नया उदाहरण प्रारंभ करने के लिए।
- मैं VBA का उपयोग करके किसी Word दस्तावेज़ में पेज ब्रेक कैसे सम्मिलित कर सकता हूँ?
- के साथ एक पेज ब्रेक डालें wdDoc.Characters.Last.InsertBreak Type:=wdPageBreak.
- मैं VBA का उपयोग करके किसी Word दस्तावेज़ में तालिका कैसे जोड़ूँ?
- का उपयोग करके एक तालिका जोड़ें wdDoc.Tables.Add(Range:=wdDoc.Range, NumRows:=2, NumColumns:=lCol).
- मैं तालिका की पहली पंक्ति को हेडर के रूप में कैसे प्रारूपित कर सकता हूं?
- पहली पंक्ति को हेडर के रूप में सेट करें .Rows(1).HeadingFormat = True और इसे प्रयोग करके बोल्ड बनाएं .Rows(1).Range.Font.Bold = True.
- मैं VBA का उपयोग करके Word में किसी तालिका के लिए सीमाएँ कैसे निर्धारित करूँ?
- के साथ सीमाएँ निर्धारित करें wdTbl.Borders, अंदर और बाहर की रेखाओं के लिए शैलियाँ निर्दिष्ट करना।
- मैं वीबीए में वर्ड एप्लिकेशन को उपयोगकर्ता के लिए कैसे दृश्यमान बना सकता हूं?
- दृश्यता को इसके साथ सेट करें wdApp.Visible = True.
- यदि वर्तमान पंक्ति मौजूदा पंक्ति संख्या से अधिक हो तो किसी तालिका में नई पंक्ति जोड़ने के लिए किस कमांड का उपयोग किया जाता है?
- के साथ एक नई पंक्ति जोड़ें If (r - startRow + 2) > .Rows.Count Then .Rows.Add.
- मैं VBA का उपयोग करके Word में एक नया दस्तावेज़ कैसे बना सकता हूँ?
- के साथ एक नया दस्तावेज़ बनाएं Set wdDoc = .Documents.Add.
अंतिम विचार
VBA का उपयोग करके एकाधिक Excel तालिकाओं को एक एकल Word दस्तावेज़ में संयोजित करना डेटा स्थानांतरण और फ़ॉर्मेटिंग की प्रक्रिया को सुव्यवस्थित करता है। तालिका निर्माण, फ़ॉर्मेटिंग और पेज ब्रेक को स्वचालित करके, मैक्रो यह सुनिश्चित करता है कि अंतिम दस्तावेज़ सुव्यवस्थित और पेशेवर रूप से प्रस्तुत किया गया है। यह दृष्टिकोण समय बचाता है और त्रुटियों के जोखिम को कम करता है, जिससे यह विभिन्न प्लेटफार्मों पर डेटा को प्रबंधित और प्रस्तुत करने के लिए एक कुशल समाधान बन जाता है।