Přenos Dat od velkého souboru aplikace Excel na více tabulek v dokumentu aplikace word

0

Otázka

Snažím se přenášet data z velkého listu aplikace excel do malých tabulek v dokumentu aplikace word. Chci to udělat tím, že odpovídá na první sloupec v řádku a potom kopírování buněk ve sloupcích vpravo v řádku.

Například, tady je tabulka v excelu:

Společnost První Jméno Příjmení
Apple Tome Tommy
Google Ann Anny
Amazon Řidič Ted

V dokumentech aplikace word existuje více tabulek. Chci naplnit názvy, které se shodují s firmou. Teď tabulky vypadat takto:

Společnost První Jméno Příjmení
Google
Amazon
Společnost První Jméno Příjmení
Google
Apple
Společnost První Jméno Příjmení
Google
Amazon
Apple

Chci jména, které mají být přidány, takže by vypadat takto:

Společnost První Jméno Příjmení
Google Ann Anny
Amazon Řidič Ted
Společnost První Jméno Příjmení
Google Ann Anny
Apple Tome Tommy
Společnost První Jméno Příjmení
Google Ann Anny
Amazon Řidič Ted
Apple Tome Tommy

Jsem otevřený jakoukoli možnost, že by mi to pomoci. Snažil jsem Mail Sloučit, ale to se zdá být pracný a ne ušetřit čas. Díky za pomoc.

database excel ms-word vba
2021-11-19 16:31:11
1

Nejlepší odpověď

0

Pro první přístup, můžete použít tento kód v MS Word, kam chcete naplnit tabulky. Kód není optimalizován a kontrolu chyb je vynechán. Očekává pojmenovanou oblast 'MyData' existuje a obsahuje přesně tři sloupce [společnost, jméno1, jméno2]

'Add reference to the 'Microsoft Excel 16.0 Object Library' is required

Sub FillTablesFromExcel()
    
    Dim doc As Word.Document
    Set doc = ThisDocument
    
    Dim data
    data = ReadDataFromExcel
    
    Dim t As Word.Table
    For Each t In doc.Tables
        If t.Columns.Count <> 3 Then Exit For
        
        Dim r As Word.Row
        For Each r In t.Rows
            Dim txt As String
            txt = r.Cells(1).Range.Text
            company = Trim(Left(txt, Len(txt) - 2))
            
            For i = 1 To UBound(data)
                comp = data(i, 1)
                name1 = data(i, 2)
                name2 = data(i, 3)
                
                If company = comp Then
                    r.Cells(2).Range.Text = name1
                    r.Cells(3).Range.Text = name2
                End If
            Next
        Next
    Next

End Sub

Function ReadDataFromExcel()

    Dim xlsWorkbook As Excel.Workbook
    Set xlsWorkbook = Excel.Workbooks.Open("C:\Path\To\The\File.xlsx", ReadOnly:=True)
    
    Dim xlsSheet As Excel.Worksheet
    Set xlsSheet = xlsWorkbook.Sheets(1)
    
    Dim dataRange As Excel.Range
    Set dataRange = xlsSheet.Range("MyData")
    
    Value2 = dataRange.Value2
    
    Call xlsWorkbook.Close(False)
    ReadDataFromExcel = Value2
End Function
2021-11-19 19:41:44

V jiných jazycích

Tato stránka je v jiných jazycích

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................