Word VBA -makron - Tabeller: Lägg till, markera, slinga, infoga från Excel

Lägg till tabell i Word -dokument

Detta enkla makro lägger till en tabell i ditt Word -dokument:

Sub VerySimpleTableAdd () Dim oTable As Table Set oTable = ActiveDocument.Tables.Add (Range: = Selection.Range, NumRows: = 3, NumColumns: = 3) End Sub

Välj tabell i Word

Detta makro väljer den första tabellen i det aktiva Word -dokumentet:

Sub SelectTable () "väljer första tabellen i aktiv doc Om ActiveDocument.Tables.Count> 0 Sedan" för att undvika fel kontrollerar vi om det finns någon tabell i aktiv doc ActiveDocument.Tables (1) .Välj End If End Sub

Slinga igenom alla celler i en tabell

Detta VBA -makro går igenom alla celler i en tabell och skriver cellräkningen till cellen:

Sub TableCycling () 'loop genom alla celler i tabellen Dim nCounter As Long' kommer detta att skrivas i alla tabellceller Dim tabell som tabell Dim oRow As Row Dim oCell As Cell ActiveDocument.Range.InsertParagraphAfter 'gör bara en ny punkt i slutet av doc , Tabell skapas här Ställ in oTable = ActiveDocument.Tables.Add (Range: = ActiveDocument.Paragraphs.Last.Range, NumRows: = 3, NumColumns: = 3) 'skapa tabell och tilldela variabeln för varje oRow In tabell. Radernas yttre slinga går genom rader För varje oCell I oRow.Cells inre slinga går nCounter = nCounter + 1 'ökar räknaren oCell.Range.Text = nCounter' skriver räknare till cellen Nästa oCell Nästa oRow 'displayresultat från cell från andra kolumnen i andra raden Dim strTemp As String strTemp = oTable.Cell (2, 2) .Range.Text MsgBox strTemp End Sub

Skapa Word -tabell från Excel -fil

Detta VBA -exempel kommer att göra en tabell från en Excel -fil:

Sub MakeTablefromExcelFile () 'advanced Dim oExcelApp, oExcelWorkbook, oExcelWorksheet, oExcelRange Dim nNumOfRows As Long Dim nNumOfCols As Long Dim strFile As String Dim oTable As Table' word table Dim oRow As Row 'word rad Dim oCell As Cell' word As Long, y As Long '-räknare för slingor strFile = "c: \ Users \ Nenad \ Desktop \ BookSample.xlsx"' ändra till den verkliga sökvägen Ange oExcelApp = CreateObject ("Excel.Application") oExcelApp.Visible = True Set oExcelWorkbook = oExcelApp.Workbooks.Open (strFile) 'öppen arbetsbok och tilldela den till variabel Ange oExcelWorksheet = oExcelWorkbook.Worksheets (1)' tilldela första kalkylblad till variabel Ange oExcelRange = oExcelWorksheet.Range ("A1: C8") nNumOfRows = oExcel. Count nNumOfCols = oExcelRange.Columns.Count ActiveDocument.Range.InsertParagraphAfter 'just makes new para athe end of doc, Table will be created here Set oTable = ActiveDocument.Tables.Add (Range: = ActiveDocument.Paragraphs.Last.Range, NumRows: = nNumOfRows, NumColumns: = nNumOfCols) 'creat tabellen och ange den till variabel '*** real deal, tabellen fylls här För x = 1 Till nNumOfRows För y = 1 Till nNumOfCols oTable.Cell (x, y) .Range.Text = oExcelRange.Cells (x, y ) .Value Next y Next x '*** oExcelWorkbook.Close False oExcelApp.Quit With oTable.Rows (1) .Range' we can now apply some beautiness to our table :) .Shading.Texture = wdTextureNone .Shading.ForegroundPatternColor = wdColorAutomatic .Shading.BackgroundPatternColor = wdColorYellow End With End Sub

Du kommer att bidra till utvecklingen av webbplatsen, dela sidan med dina vänner

wave wave wave wave wave