బహుళ ఎక్సెల్ పట్టికలను VBAతో సింగిల్ వర్డ్ డాక్యుమెంట్‌గా కలపడం

బహుళ ఎక్సెల్ పట్టికలను VBAతో సింగిల్ వర్డ్ డాక్యుమెంట్‌గా కలపడం
బహుళ ఎక్సెల్ పట్టికలను VBAతో సింగిల్ వర్డ్ డాక్యుమెంట్‌గా కలపడం

ఎక్సెల్ డేటాను వర్డ్‌లో సమర్థవంతంగా విలీనం చేయడం

వివిధ ప్లాట్‌ఫారమ్‌లలో డేటాను నిర్వహించడం గజిబిజిగా ఉంటుంది, ప్రత్యేకించి మీరు Excel నుండి వర్డ్ డాక్యుమెంట్‌లో బహుళ పట్టికలను కంపైల్ చేయవలసి వచ్చినప్పుడు. VBAని ఉపయోగించి, మీరు ఈ ప్రక్రియను స్వయంచాలకంగా చేయవచ్చు, కావలసిన ఫార్మాట్ మరియు నిర్మాణాన్ని కొనసాగిస్తూ డేటా యొక్క అతుకులు బదిలీని నిర్ధారిస్తుంది.

ఈ వ్యాసం ప్రస్తుతం Excel పట్టికల నుండి మూడు వేర్వేరు వర్డ్ డాక్యుమెంట్‌లను సృష్టించే 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) వర్డ్ డాక్యుమెంట్‌కు పేర్కొన్న అడ్డు వరుసలు మరియు నిలువు వరుసలతో కొత్త పట్టికను జోడిస్తుంది.
With wdTbl.Borders పంక్తుల లోపల మరియు వెలుపల పట్టిక కోసం సరిహద్దు శైలిని సెట్ చేస్తుంది.
wdApp.Visible = True Word అప్లికేషన్‌ను వినియోగదారుకు కనిపించేలా చేస్తుంది.
If (r - startRow + 2) >If (r - startRow + 2) > .Rows.Count Then .Rows.Add ప్రస్తుత అడ్డు వరుస ఇప్పటికే ఉన్న అడ్డు వరుసల సంఖ్యను మించి ఉంటే పట్టికకు కొత్త అడ్డు వరుసను జోడిస్తుంది.
Set wdDoc = .Documents.Add Word అప్లికేషన్‌లో కొత్త పత్రాన్ని సృష్టిస్తుంది.

పట్టికలను కలపడం కోసం VBA మాక్రోను అర్థం చేసుకోవడం

అందించిన స్క్రిప్ట్‌లు VBAని ఉపయోగించి బహుళ ఎక్సెల్ టేబుల్‌ల నుండి డేటాను ఒకే వర్డ్ డాక్యుమెంట్‌లోకి బదిలీ చేసే ప్రక్రియను ఎలా ఆటోమేట్ చేయాలో చూపుతాయి. ప్రధాన స్క్రిప్ట్, Sub ConsolidateTablesInOneDocument(),తో Word అప్లికేషన్ యొక్క కొత్త ఉదాహరణను ప్రారంభిస్తుంది Set wdApp = New Word.Application మరియు ఉపయోగించి కొత్త పత్రాన్ని సృష్టిస్తుంది Set wdDoc = .Documents.Add. ఇది ఖాళీ కణాల కోసం తనిఖీ చేయడం ద్వారా పట్టికలు ముగిసే చోట Excelలోని అడ్డు వరుసలను గుర్తిస్తుంది మరియు ఈ స్థానాలను వేరియబుల్స్‌లో నిల్వ చేస్తుంది First మరియు Second. దీని వలన ప్రతి పట్టిక ఎక్కడ ముగుస్తుంది మరియు ఎక్కడ మొదలవుతుంది అనేది స్క్రిప్ట్‌ని తెలుసుకోగలుగుతుంది. స్థూల అప్పుడు ఉపయోగించి Word లో పట్టికలు సృష్టిస్తుంది .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లో 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తో వర్డ్‌లో విలీనం చేయడం

ఈ స్క్రిప్ట్ ఒక Excel షీట్ నుండి పట్టికలను ఒకే వర్డ్ డాక్యుమెంట్‌లో విలీనం చేయడానికి 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) వర్డ్ డాక్యుమెంట్‌కు కొత్త పట్టికను జోడించడానికి ఉపయోగించబడుతుంది, Excel డేటా ఆధారంగా వరుసలు మరియు నిలువు వరుసల సంఖ్యను పేర్కొంటుంది.

మరొక ముఖ్యమైన అంశం పట్టికను ఫార్మాట్ చేయడం. వంటి ఆదేశాలు .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 Word అప్లికేషన్ యొక్క కొత్త ఉదాహరణను ప్రారంభించడానికి.
  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ని ఉపయోగించి వర్డ్‌లో పట్టిక కోసం సరిహద్దులను ఎలా సెట్ చేయాలి?
  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 పట్టికలను కలపడం డేటా బదిలీ మరియు ఫార్మాటింగ్ ప్రక్రియను క్రమబద్ధీకరిస్తుంది. టేబుల్ క్రియేషన్, ఫార్మాటింగ్ మరియు పేజీ బ్రేక్‌లను ఆటోమేట్ చేయడం ద్వారా, మాక్రో చివరి పత్రం చక్కగా నిర్వహించబడి మరియు వృత్తిపరంగా ప్రదర్శించబడిందని నిర్ధారిస్తుంది. ఈ విధానం సమయాన్ని ఆదా చేస్తుంది మరియు లోపాల ప్రమాదాన్ని తగ్గిస్తుంది, ఇది వివిధ ప్లాట్‌ఫారమ్‌లలో డేటాను నిర్వహించడానికి మరియు ప్రదర్శించడానికి సమర్థవంతమైన పరిష్కారంగా చేస్తుంది.