VBA உடன் பல எக்செல் அட்டவணைகளை ஒரு ஒற்றை வார்த்தை ஆவணமாக இணைத்தல்

VBA உடன் பல எக்செல் அட்டவணைகளை ஒரு ஒற்றை வார்த்தை ஆவணமாக இணைத்தல்
VBA உடன் பல எக்செல் அட்டவணைகளை ஒரு ஒற்றை வார்த்தை ஆவணமாக இணைத்தல்

எக்செல் தரவை வேர்டில் திறம்பட இணைத்தல்

வெவ்வேறு தளங்களில் தரவை நிர்வகிப்பது ஒரு சிக்கலான பணியாகும், குறிப்பாக நீங்கள் எக்செல் இலிருந்து பல அட்டவணைகளை ஒரு வேர்ட் ஆவணத்தில் தொகுக்க வேண்டியிருக்கும் போது. 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) குறிப்பிட்ட வரிசைகள் மற்றும் நெடுவரிசைகளுடன் 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 பயன்பாட்டில் புதிய ஆவணத்தை உருவாக்குகிறது.

அட்டவணைகளை இணைப்பதற்கான VBA மேக்ரோவைப் புரிந்துகொள்வது

வழங்கப்பட்ட ஸ்கிரிப்டுகள் VBA ஐப் பயன்படுத்தி பல எக்செல் டேபிள்களில் இருந்து ஒரு வேர்ட் டாகுமெண்ட்டில் தரவை எவ்வாறு தானியங்குபடுத்துவது என்பதை விளக்குகிறது. முக்கிய ஸ்கிரிப்ட், Sub ConsolidateTablesInOneDocument(), உடன் வேர்ட் பயன்பாட்டின் புதிய நிகழ்வை துவக்குகிறது Set wdApp = New Word.Application மற்றும் பயன்படுத்தி ஒரு புதிய ஆவணத்தை உருவாக்குகிறது Set wdDoc = .Documents.Add. இது எக்செல் இல் உள்ள வரிசைகளை அடையாளம் காட்டுகிறது, அங்கு அட்டவணைகள் வெற்று செல்களை சரிபார்த்து முடிவடையும் மற்றும் இந்த நிலைகளை மாறிகளில் சேமிக்கிறது. 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, உருவாக்கப்பட்ட ஆவணத்தை பயனர் பார்க்க முடியும் என்பதை உறுதிப்படுத்துகிறது. இந்த அணுகுமுறை 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 உடன் இணைத்தல்

இந்த ஸ்கிரிப்ட், எக்செல் தாளில் இருந்து அட்டவணைகளை ஒரு ஒற்றை வேர்ட் ஆவணமாக ஒன்றிணைக்க 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) எக்செல் தரவின் அடிப்படையில் வரிசைகள் மற்றும் நெடுவரிசைகளின் எண்ணிக்கையைக் குறிப்பிடுவதன் மூலம் Word ஆவணத்தில் புதிய அட்டவணையைச் சேர்க்கப் பயன்படுகிறது.

மற்றொரு முக்கியமான உறுப்பு அட்டவணையை வடிவமைப்பது. போன்ற கட்டளைகள் .Rows(1).Range.Font.Bold = True முதல் வரிசையை தடிமனாக மாற்றவும், தலைப்புகளைக் குறிக்கவும் wdTbl.Borders அட்டவணையின் உள் மற்றும் வெளிப்புறக் கோடுகளுக்கு எல்லைப் பாணிகளை அமைக்கப் பயன்படுகிறது. மேலும், ஒவ்வொரு அட்டவணையும் தனித்தனி பக்கத்தில் தோன்றுவதை உறுதிசெய்ய பக்க முறிவுகளைச் செருகுவது அவசியம். wdDoc.Characters.Last.InsertBreak Type:=wdPageBreak. இந்த கட்டளைகள் கூட்டாக இறுதி ஆவணம் நன்கு ஒழுங்கமைக்கப்பட்டு தொழில்ரீதியாக வடிவமைக்கப்படுவதை உறுதி செய்கிறது.

Word மற்றும் Excel க்கான VBA மேக்ரோக்கள் பற்றி அடிக்கடி கேட்கப்படும் கேள்விகள்

  1. VBA ஐப் பயன்படுத்தி ஒரு புதிய Word பயன்பாட்டை எவ்வாறு தொடங்குவது?
  2. பயன்படுத்தவும் Set wdApp = New Word.Application வேர்ட் பயன்பாட்டின் புதிய நிகழ்வைத் தொடங்குவதற்கு.
  3. VBA ஐப் பயன்படுத்தி வேர்ட் ஆவணத்தில் பக்க இடைவெளியை எவ்வாறு செருகுவது?
  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. 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 ஐப் பயன்படுத்தி பல எக்செல் அட்டவணைகளை ஒரே வேர்ட் ஆவணமாக இணைப்பது தரவு பரிமாற்றம் மற்றும் வடிவமைப்பின் செயல்முறையை ஒழுங்குபடுத்துகிறது. அட்டவணை உருவாக்கம், வடிவமைத்தல் மற்றும் பக்க முறிவுகளை தானியங்குபடுத்துவதன் மூலம், இறுதி ஆவணம் நன்கு ஒழுங்கமைக்கப்பட்டு தொழில் ரீதியாக வழங்கப்படுவதை மேக்ரோ உறுதி செய்கிறது. இந்த அணுகுமுறை நேரத்தைச் சேமிக்கிறது மற்றும் பிழைகளின் அபாயத்தைக் குறைக்கிறது, இது பல்வேறு தளங்களில் தரவை நிர்வகிப்பதற்கும் வழங்குவதற்கும் ஒரு திறமையான தீர்வாக அமைகிறது.