ഒന്നിലധികം എക്സൽ ടേബിളുകൾ ഒരു സിംഗിൾ വേഡ് ഡോക്യുമെൻ്റായി വിബിഎയുമായി സംയോജിപ്പിക്കുന്നു

ഒന്നിലധികം എക്സൽ ടേബിളുകൾ ഒരു സിംഗിൾ വേഡ് ഡോക്യുമെൻ്റായി വിബിഎയുമായി സംയോജിപ്പിക്കുന്നു
ഒന്നിലധികം എക്സൽ ടേബിളുകൾ ഒരു സിംഗിൾ വേഡ് ഡോക്യുമെൻ്റായി വിബിഎയുമായി സംയോജിപ്പിക്കുന്നു

Excel ഡാറ്റ Word-ലേക്ക് കാര്യക്ഷമമായി ലയിപ്പിക്കുന്നു

വ്യത്യസ്‌ത പ്ലാറ്റ്‌ഫോമുകളിലുടനീളമുള്ള ഡാറ്റ കൈകാര്യം ചെയ്യുന്നത് ബുദ്ധിമുട്ടുള്ള കാര്യമാണ്, പ്രത്യേകിച്ചും Excel-ൽ നിന്ന് ഒരു വേഡ് ഡോക്യുമെൻ്റിലേക്ക് ഒന്നിലധികം പട്ടികകൾ കംപൈൽ ചെയ്യേണ്ടിവരുമ്പോൾ. VBA ഉപയോഗിച്ച്, നിങ്ങൾക്ക് ഈ പ്രക്രിയ ഓട്ടോമേറ്റ് ചെയ്യാം, ആവശ്യമുള്ള ഫോർമാറ്റും ഘടനയും നിലനിർത്തിക്കൊണ്ട് ഡാറ്റയുടെ തടസ്സമില്ലാത്ത കൈമാറ്റം ഉറപ്പാക്കുന്നു.

ഈ ലേഖനം ഒരു VBA മാക്രോ പര്യവേക്ഷണം ചെയ്യുന്നു, അത് നിലവിൽ Excel പട്ടികകളിൽ നിന്ന് മൂന്ന് വ്യത്യസ്ത വേഡ് ഡോക്യുമെൻ്റുകൾ സൃഷ്ടിക്കുന്നു. വ്യക്തതയ്ക്കും ഓർഗനൈസേഷനും ഓരോ ടേബിളിനുശേഷവും പേജ് ബ്രേക്കുകൾക്കൊപ്പം, ഒരൊറ്റ വേഡ് ഡോക്യുമെൻ്റിൽ എല്ലാ ടേബിളുകളും നിർമ്മിക്കുന്നതിന് കോഡ് എങ്ങനെ പരിഷ്കരിക്കാമെന്ന് ഞങ്ങൾ കാണിക്കും.

കമാൻഡ് വിവരണം
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 Word ആപ്ലിക്കേഷനിൽ ഒരു പുതിയ പ്രമാണം സൃഷ്ടിക്കുന്നു.

പട്ടികകൾ സംയോജിപ്പിക്കുന്നതിനുള്ള VBA മാക്രോ മനസ്സിലാക്കുന്നു

നൽകിയിരിക്കുന്ന സ്ക്രിപ്റ്റുകൾ VBA ഉപയോഗിച്ച് ഒന്നിലധികം Excel ടേബിളുകളിൽ നിന്ന് ഒരൊറ്റ വേഡ് ഡോക്യുമെൻ്റിലേക്ക് ഡാറ്റ കൈമാറ്റം ചെയ്യുന്ന പ്രക്രിയ എങ്ങനെ ഓട്ടോമേറ്റ് ചെയ്യാമെന്ന് കാണിക്കുന്നു. പ്രധാന സ്ക്രിപ്റ്റ്, Sub ConsolidateTablesInOneDocument(), ഉപയോഗിച്ച് വേഡ് ആപ്ലിക്കേഷൻ്റെ ഒരു പുതിയ ഉദാഹരണം ആരംഭിക്കുന്നു Set wdApp = New Word.Application ഉപയോഗിച്ച് ഒരു പുതിയ പ്രമാണം സൃഷ്ടിക്കുന്നു Set wdDoc = .Documents.Add. ശൂന്യമായ സെല്ലുകൾ പരിശോധിച്ച് പട്ടികകൾ അവസാനിക്കുന്ന Excel-ലെ വരികൾ ഇത് തിരിച്ചറിയുകയും ഈ സ്ഥാനങ്ങൾ വേരിയബിളുകളിൽ സംഭരിക്കുകയും ചെയ്യുന്നു. First ഒപ്പം Second. ഓരോ ടേബിളും എവിടെ അവസാനിക്കുന്നുവെന്നും ആരംഭിക്കുന്നുവെന്നും സ്ക്രിപ്റ്റിനെ അറിയാൻ ഇത് അനുവദിക്കുന്നു. മാക്രോ പിന്നീട് വേഡ് ഉപയോഗിച്ച് പട്ടികകൾ സൃഷ്ടിക്കുന്നു .Tables.Add(Range:=wdDoc.Range, NumRows:=2, NumColumns:=lCol) കൂടാതെ Excel-ൽ നിന്നുള്ള ഡാറ്റ ഉപയോഗിച്ച് ഈ പട്ടികകൾ പോപ്പുലേറ്റ് ചെയ്യുന്നു.

ഓരോ പട്ടികയും വ്യക്തമായി വേർതിരിച്ചിട്ടുണ്ടെന്ന് ഉറപ്പാക്കാൻ, ഓരോ ടേബിളിനും ശേഷം സ്ക്രിപ്റ്റ് ഒരു പേജ് ബ്രേക്ക് ചേർക്കുന്നു wdDoc.Characters.Last.InsertBreak Type:=wdPageBreak. ദി CreateTable ഓരോ ടേബിളും ജനറേറ്റ് ചെയ്യാനും ഫോർമാറ്റ് ചെയ്യാനും സബ്റൂട്ടീനെ മൂന്ന് തവണ വിളിക്കുന്നു. ഈ സബ്റൂട്ടീൻ തലക്കെട്ടുകൾ നിർവചിക്കുന്നു, വരികളും നിരകളും പോപ്പുലേറ്റ് ചെയ്യുന്നു, കൂടാതെ പട്ടികകളിൽ ബോർഡർ ശൈലികൾ പ്രയോഗിക്കുന്നു .Rows(1).Range.Font.Bold = True ഒപ്പം With wdTbl.Borders. അവസാനമായി, മാക്രോ വേഡ് ആപ്ലിക്കേഷൻ്റെ ദൃശ്യപരത സത്യമായി സജ്ജീകരിക്കുന്നു wdApp.Visible = True, ഉപയോക്താവിന് ജനറേറ്റുചെയ്‌ത പ്രമാണം കാണാൻ കഴിയുമെന്ന് ഉറപ്പാക്കുന്നു. ഈ സമീപനം Excel-ൽ നിന്ന് ഒന്നിലധികം ടേബിളുകളെ ഒരു വേഡ് ഡോക്യുമെൻ്റിലേക്ക് ഫലപ്രദമായി ഏകീകരിക്കുന്നു, വ്യക്തതയും ഫോർമാറ്റും നിലനിർത്തുന്നു.

ഒന്നിലധികം എക്സൽ ടേബിളുകൾ ഒരു വേഡ് ഡോക്യുമെൻ്റായി ഏകീകരിക്കുന്നു

ഒന്നിലധികം ടേബിളുകൾ ഒരു വേഡ് ഡോക്യുമെൻ്റിലേക്ക് സംയോജിപ്പിക്കാൻ 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

Excel ഡാറ്റ VBA-മായി Word-ലേക്ക് ലയിപ്പിക്കുന്നു

ശരിയായ ഫോർമാറ്റിംഗും പേജ് ബ്രേക്കുകളും ഉറപ്പാക്കുന്ന ഒരു എക്സൽ ഷീറ്റിൽ നിന്ന് ഒരു വേഡ് ഡോക്യുമെൻ്റിലേക്ക് പട്ടികകൾ ലയിപ്പിക്കാൻ ഈ സ്ക്രിപ്റ്റ് 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 ഉപയോഗിച്ച് Excel-ൽ നിന്ന് Word-ലേക്ക് ഡാറ്റ കൈമാറ്റം ഓട്ടോമേറ്റ് ചെയ്യുമ്പോൾ, പട്ടികകൾ എങ്ങനെ ഫലപ്രദമായി കൈകാര്യം ചെയ്യാമെന്നും ഫോർമാറ്റ് ചെയ്യാമെന്നും മനസ്സിലാക്കേണ്ടത് പ്രധാനമാണ്. ഘടനയും വായനാക്ഷമതയും നിലനിർത്തിക്കൊണ്ട് ഡാറ്റ ശരിയായി കൈമാറ്റം ചെയ്യപ്പെടുന്നുവെന്ന് ഉറപ്പാക്കുക എന്നതാണ് ഒരു പ്രധാന വശം. ഇതിന് പട്ടിക സൃഷ്ടിക്കൽ, ഫോർമാറ്റിംഗ്, പേജ് ബ്രേക്കുകൾ ചേർക്കൽ എന്നിവ നിയന്ത്രിക്കുന്ന 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. അന്തിമ പ്രമാണം നന്നായി ചിട്ടപ്പെടുത്തിയതും പ്രൊഫഷണലായി ഫോർമാറ്റ് ചെയ്തതുമാണെന്ന് ഈ കമാൻഡുകൾ കൂട്ടായി ഉറപ്പാക്കുന്നു.

Word, Excel എന്നിവയ്‌ക്കായുള്ള VBA മാക്രോകളെ കുറിച്ച് പതിവായി ചോദിക്കുന്ന ചോദ്യങ്ങൾ

  1. VBA ഉപയോഗിച്ച് ഒരു പുതിയ വേഡ് ആപ്ലിക്കേഷൻ എങ്ങനെ ആരംഭിക്കാം?
  2. ഉപയോഗിക്കുക Set wdApp = New Word.Application വേഡ് ആപ്ലിക്കേഷൻ്റെ ഒരു പുതിയ ഉദാഹരണം ആരംഭിക്കുന്നതിന്.
  3. VBA ഉപയോഗിച്ച് ഒരു വേഡ് ഡോക്യുമെൻ്റിൽ എനിക്ക് എങ്ങനെ ഒരു പേജ് ബ്രേക്ക് ചേർക്കാം?
  4. ഉപയോഗിച്ച് ഒരു പേജ് ബ്രേക്ക് ചേർക്കുക wdDoc.Characters.Last.InsertBreak Type:=wdPageBreak.
  5. VBA ഉപയോഗിച്ച് ഒരു വേഡ് ഡോക്യുമെൻ്റിലേക്ക് ഒരു പട്ടിക എങ്ങനെ ചേർക്കാം?
  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. VBA-യിലെ ഉപയോക്താവിന് വേഡ് ആപ്ലിക്കേഷൻ എങ്ങനെ ദൃശ്യമാക്കാം?
  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 ടേബിളുകൾ ഒരൊറ്റ വേഡ് ഡോക്യുമെൻ്റിലേക്ക് സംയോജിപ്പിക്കുന്നത് ഡാറ്റ കൈമാറ്റത്തിൻ്റെയും ഫോർമാറ്റിംഗിൻ്റെയും പ്രക്രിയയെ കാര്യക്ഷമമാക്കുന്നു. പട്ടിക സൃഷ്ടിക്കൽ, ഫോർമാറ്റിംഗ്, പേജ് ബ്രേക്കുകൾ എന്നിവ ഓട്ടോമേറ്റ് ചെയ്യുന്നതിലൂടെ, അന്തിമ പ്രമാണം നന്നായി ചിട്ടപ്പെടുത്തിയതും പ്രൊഫഷണലായി അവതരിപ്പിക്കപ്പെടുന്നതും മാക്രോ ഉറപ്പാക്കുന്നു. ഈ സമീപനം സമയം ലാഭിക്കുകയും പിശകുകളുടെ അപകടസാധ്യത കുറയ്ക്കുകയും ചെയ്യുന്നു, ഇത് വിവിധ പ്ലാറ്റ്‌ഫോമുകളിൽ ഡാറ്റ കൈകാര്യം ചെയ്യുന്നതിനും അവതരിപ്പിക്കുന്നതിനുമുള്ള കാര്യക്ഷമമായ പരിഹാരമാക്കി മാറ്റുന്നു.