Macros VBA do Word - Tabelas: Adicionar, Selecionar, Repetir, Inserir do Excel

Adicionar tabela ao documento do Word

Esta macro simples adicionará uma tabela ao seu documento do Word:

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

Selecione a tabela no Word

Esta macro irá selecionar a primeira tabela no documento do Word ativo:

Sub SelectTable () 'seleciona a primeira tabela no documento ativo If ActiveDocument.Tables.Count> 0 Then' para evitar erros, verificamos se existe alguma tabela no documento ativo ActiveDocument.Tables (1) .Select End If End Sub

Loop por todas as células em uma tabela

Esta macro VBA percorrerá todas as células em uma tabela, gravando a contagem de células na célula:

Sub TableCycling () 'percorrer todas as células da tabela Dim nCounter As Long' será escrito em todas as células da tabela Dim oTable As Table Dim oRow As Row Dim oCell As Cell ActiveDocument.Range.InsertParagraphAfter 'apenas faz um novo parágrafo no final do documento , A tabela será criada aqui Set oTable = ActiveDocument.Tables.Add (Range: = ActiveDocument.Paragraphs.Last.Range, NumRows: = 3, NumColumns: = 3) 'crie a tabela e atribua-a à variável para cada oRow em oTable. O loop externo das linhas passa pelas linhas para cada oCell Em oRow.Cells 'loop interno vai nCounter = nCounter + 1' aumenta o contador oCell.Range.Text = nCounter 'escreve o contador na célula Next oCell Next oRow' exibe o resultado da célula de segunda coluna na segunda linha Dim strTemp As String strTemp = oTable.Cell (2, 2) .Range.Text MsgBox strTemp End Sub

Criar tabela do Word a partir de arquivo do Excel

Este exemplo VBA fará uma tabela a partir de um arquivo Excel:

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 row Dim oCell As Cell' word table cell célula x As Long, y As Long 'contador para loops strFile = "c: \ Users \ Nenad \ Desktop \ BookSample.xlsx"' alterar para o caminho real Definir oExcelApp = CreateObject ("Excel.Application") oExcelApp.Visible = True Definir oExcelWorkbook = oExcelApp.Workbooks.Open (strFile) 'abrir a pasta de trabalho e atribuí-la à variável Definir oExcelWorksheet = oExcelWorkbook.Worksheets (1)' atribuir a primeira planilha à variável Definir oExcelRange = oExcelWorksheet.Range ("A1: C8") nNumOfRows = oExcelRange.Rows. Count nNumOfCols = oExcelRange.Columns.Count ActiveDocument.Range.InsertParagraphAfter 'apenas faz um novo para no final do documento, a tabela será criada aqui Set oTable = ActiveDocument.Tables.Add (Range: = ActiveDocument.Paragraphs.Last.Range, NumRows: = nNumOfRows, NumColumns: = nNumOfCols) 'creat e a tabela e atribuí-la à variável '*** negócio real, a tabela é preenchida aqui Para x = 1 Para nNumOfRows Para y = 1 Para nNumOfCols oTable.Cell (x, y) .Range.Text = oExcelRange.Cells (x, y ) .Value Next y Next x '*** oExcelWorkbook.Close False oExcelApp.Quit Com oTable.Rows (1) .Range' agora podemos aplicar alguma beleza à nossa mesa :) .Shading.Texture = wdTextureNone .Shading.ForegroundPatternColor = wdColorAutomatic .Shading.BackgroundPatternColor = wdColorYellow End With End Sub
wave wave wave wave wave