વર્ડમાં એક્સેલ ડેટાને અસરકારક રીતે મર્જ કરો
વિવિધ પ્લેટફોર્મ પર ડેટાનું સંચાલન કરવું એ એક બોજારૂપ કાર્ય હોઈ શકે છે, ખાસ કરીને જ્યારે તમારે એક્સેલમાંથી બહુવિધ કોષ્ટકોને વર્ડ દસ્તાવેજમાં કમ્પાઈલ કરવાની જરૂર હોય. VBA નો ઉપયોગ કરીને, તમે આ પ્રક્રિયાને સ્વચાલિત કરી શકો છો, ઇચ્છિત ફોર્મેટ અને માળખું જાળવી રાખીને ડેટાના સીમલેસ ટ્રાન્સફરની ખાતરી કરો.
આ લેખ VBA મેક્રોની શોધ કરે છે જે હાલમાં એક્સેલ કોષ્ટકોમાંથી ત્રણ અલગ વર્ડ દસ્તાવેજો બનાવે છે. અમે સ્પષ્ટતા અને સંસ્થા માટે દરેક કોષ્ટક પછી પૃષ્ઠ વિરામ સાથે, એક જ વર્ડ દસ્તાવેજમાં તમામ કોષ્ટકો બનાવવા માટે કોડમાં ફેરફાર કેવી રીતે કરવો તે દર્શાવીશું.
આદેશ | વર્ણન |
---|---|
Set wdApp = New Word.Application | વર્ડ એપ્લિકેશનનો નવો દાખલો શરૂ કરે છે. |
wdDoc.Characters.Last.InsertBreak Type:=wdPageBreak | દસ્તાવેજના અંતે પૃષ્ઠ વિરામ દાખલ કરે છે. |
.Rows(1).HeadingFormat = True | સ્પષ્ટ કરે છે કે કોષ્ટકની પ્રથમ પંક્તિ હેડર પંક્તિ છે. |
.Tables.Add(Range:=wdDoc.Range, NumRows:=2, NumColumns:=lCol) | ઉલ્લેખિત પંક્તિઓ અને કૉલમ સાથે વર્ડ દસ્તાવેજમાં એક નવું કોષ્ટક ઉમેરે છે. |
With wdTbl.Borders | કોષ્ટકની અંદર અને બહારની રેખાઓ માટે સરહદ શૈલી સેટ કરે છે. |
wdApp.Visible = True | વર્ડ એપ્લિકેશનને વપરાશકર્તા માટે દૃશ્યક્ષમ બનાવે છે. |
If (r - startRow + 2) >If (r - startRow + 2) > .Rows.Count Then .Rows.Add | જો વર્તમાન પંક્તિ વર્તમાન પંક્તિની સંખ્યા કરતાં વધી જાય તો કોષ્ટકમાં નવી પંક્તિ ઉમેરે છે. |
Set wdDoc = .Documents.Add | વર્ડ એપ્લિકેશનમાં એક નવો દસ્તાવેજ બનાવે છે. |
કોમ્બિનિંગ કોષ્ટકો માટે VBA મેક્રોને સમજવું
પૂરી પાડવામાં આવેલ સ્ક્રિપ્ટો VBA નો ઉપયોગ કરીને બહુવિધ એક્સેલ કોષ્ટકોમાંથી ડેટાને એક વર્ડ દસ્તાવેજમાં સ્થાનાંતરિત કરવાની પ્રક્રિયાને કેવી રીતે સ્વચાલિત કરવી તે દર્શાવે છે. મુખ્ય સ્ક્રિપ્ટ, Sub ConsolidateTablesInOneDocument(), સાથે વર્ડ એપ્લિકેશનનો નવો દાખલો શરૂ કરે છે Set wdApp = New Word.Application અને તેનો ઉપયોગ કરીને નવો દસ્તાવેજ બનાવે છે Set wdDoc = .Documents.Add. તે Excel માં પંક્તિઓને ઓળખે છે જ્યાં કોષ્ટકો ખાલી કોષો માટે તપાસીને સમાપ્ત થાય છે અને આ સ્થિતિઓને ચલોમાં સંગ્રહિત કરે છે. First અને Second. આ સ્ક્રિપ્ટને દરેક કોષ્ટક ક્યાં સમાપ્ત થાય છે અને શરૂ થાય છે તે જાણવા માટે પરવાનગી આપે છે. મેક્રો પછી વર્ડનો ઉપયોગ કરીને કોષ્ટકો બનાવે છે .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, વપરાશકર્તા જનરેટ થયેલ દસ્તાવેજ જોઈ શકે તેની ખાતરી કરવી. આ અભિગમ સ્પષ્ટતા અને ફોર્મેટ જાળવી રાખીને, એક્સેલમાંથી બહુવિધ કોષ્ટકોને એક વર્ડ દસ્તાવેજમાં અસરકારક રીતે એકીકૃત કરે છે.
બહુવિધ એક્સેલ કોષ્ટકોને એક શબ્દ દસ્તાવેજમાં એકીકૃત કરવું
આ સ્ક્રિપ્ટ દર્શાવે છે કે કેવી રીતે એક્સેલમાં 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 સાથે વર્ડમાં એક્સેલ ડેટાને મર્જ કરવું
આ સ્ક્રિપ્ટ એક્સેલ શીટમાંથી કોષ્ટકોને એક વર્ડ ડોક્યુમેન્ટમાં મર્જ કરવા માટે 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 નો ઉપયોગ કરીને એક્સેલથી વર્ડમાં ડેટાના ટ્રાન્સફરને સ્વચાલિત કરતી વખતે, અસરકારક રીતે કોષ્ટકોનું સંચાલન અને ફોર્મેટ કેવી રીતે કરવું તે સમજવું મહત્વપૂર્ણ છે. એક મુખ્ય પાસું એ સુનિશ્ચિત કરવાનું છે કે ડેટા યોગ્ય રીતે ટ્રાન્સફર થાય છે, માળખું અને વાંચનક્ષમતા બંને જાળવી રાખે છે. આના માટે VBA આદેશોને સમજવાની જરૂર છે જે ટેબલ બનાવટ, ફોર્મેટિંગ અને પૃષ્ઠ વિરામના નિવેશને નિયંત્રિત કરે છે. ઉદાહરણ તરીકે, આદેશ Set wdTbl = wdDoc.Tables.Add(Range:=wdDoc.Range, NumRows:=2, NumColumns:=lCol) એક્સેલ ડેટાના આધારે પંક્તિઓ અને કૉલમ્સની સંખ્યાનો ઉલ્લેખ કરીને વર્ડ દસ્તાવેજમાં નવું કોષ્ટક ઉમેરવા માટે વપરાય છે.
બીજું અગત્યનું તત્વ એ ટેબલનું ફોર્મેટિંગ છે. આદેશો જેમ કે .Rows(1).Range.Font.Bold = True પ્રથમ પંક્તિને બોલ્ડ બનાવો, જ્યારે હેડરો દર્શાવે છે wdTbl.Borders કોષ્ટકની અંદરની અને બહારની બંને રેખાઓ માટે સરહદ શૈલીઓ સેટ કરવા માટે વપરાય છે. વધુમાં, દરેક કોષ્ટક એક અલગ પૃષ્ઠ પર દેખાય છે તેની ખાતરી કરવા માટે પૃષ્ઠ વિરામ દાખલ કરવું આવશ્યક છે, જે આનો ઉપયોગ કરીને કરવામાં આવે છે. wdDoc.Characters.Last.InsertBreak Type:=wdPageBreak. આ આદેશો સામૂહિક રીતે સુનિશ્ચિત કરે છે કે અંતિમ દસ્તાવેજ સુવ્યવસ્થિત અને વ્યવસાયિક રીતે ફોર્મેટ કરેલ છે.
વર્ડ અને એક્સેલ માટે VBA મેક્રો વિશે વારંવાર પૂછાતા પ્રશ્નો
- હું VBA નો ઉપયોગ કરીને નવી વર્ડ એપ્લિકેશન કેવી રીતે શરૂ કરી શકું?
- વાપરવુ Set wdApp = New Word.Application વર્ડ એપ્લિકેશનનો નવો દાખલો શરૂ કરવા માટે.
- હું VBA નો ઉપયોગ કરીને વર્ડ ડોક્યુમેન્ટમાં પેજ બ્રેક કેવી રીતે દાખલ કરી શકું?
- સાથે પૃષ્ઠ વિરામ દાખલ કરો wdDoc.Characters.Last.InsertBreak Type:=wdPageBreak.
- હું VBA નો ઉપયોગ કરીને વર્ડ ડોક્યુમેન્ટમાં ટેબલ કેવી રીતે ઉમેરી શકું?
- નો ઉપયોગ કરીને ટેબલ ઉમેરો wdDoc.Tables.Add(Range:=wdDoc.Range, NumRows:=2, NumColumns:=lCol).
- હું કોષ્ટકની પ્રથમ પંક્તિને હેડર તરીકે કેવી રીતે ફોર્મેટ કરી શકું?
- સાથે હેડર તરીકે પ્રથમ પંક્તિ સેટ કરો .Rows(1).HeadingFormat = True અને તેનો ઉપયોગ કરીને બોલ્ડ બનાવો .Rows(1).Range.Font.Bold = True.
- હું VBA નો ઉપયોગ કરીને વર્ડમાં ટેબલ માટે બોર્ડર્સ કેવી રીતે સેટ કરી શકું?
- સાથે સરહદો સેટ કરો wdTbl.Borders, અંદર અને બહારની રેખાઓ માટે શૈલીઓનો ઉલ્લેખ કરે છે.
- હું વર્ડ એપ્લિકેશનને VBA માં વપરાશકર્તાને કેવી રીતે દૃશ્યક્ષમ બનાવી શકું?
- સાથે દૃશ્યતા સેટ કરો wdApp.Visible = True.
- જો વર્તમાન પંક્તિ વર્તમાન પંક્તિની સંખ્યા કરતાં વધી જાય તો કોષ્ટકમાં નવી પંક્તિ ઉમેરવા માટે કયો આદેશ વપરાય છે?
- સાથે નવી પંક્તિ ઉમેરો If (r - startRow + 2) > .Rows.Count Then .Rows.Add.
- હું VBA નો ઉપયોગ કરીને વર્ડમાં નવો દસ્તાવેજ કેવી રીતે બનાવી શકું?
- સાથે એક નવો દસ્તાવેજ બનાવો Set wdDoc = .Documents.Add.
અંતિમ વિચારો
VBA નો ઉપયોગ કરીને એક જ વર્ડ ડોક્યુમેન્ટમાં બહુવિધ એક્સેલ કોષ્ટકોનું સંયોજન ડેટા ટ્રાન્સફર અને ફોર્મેટિંગની પ્રક્રિયાને સુવ્યવસ્થિત કરે છે. ટેબલ બનાવટ, ફોર્મેટિંગ અને પૃષ્ઠ વિરામને સ્વચાલિત કરીને, મેક્રો ખાતરી કરે છે કે અંતિમ દસ્તાવેજ સુવ્યવસ્થિત અને વ્યવસાયિક રીતે પ્રસ્તુત છે. આ અભિગમ સમય બચાવે છે અને ભૂલોના જોખમને ઘટાડે છે, જે તેને વિવિધ પ્લેટફોર્મ પર ડેટાનું સંચાલન અને પ્રસ્તુત કરવા માટે એક કાર્યક્ષમ ઉકેલ બનાવે છે.