Caros amigos, consegui um código para transferir dados de uma tabela em PDF para o excel, utilizando o word. No entanto, o script é engessado em uma quantidade fixa de linhas e colunas e que não transfere dados das demais páginas, a não ser da primeira.
O meu objetivo é acoplar nesse código, a capacidade dele contar a quantidade de linhas e colunas que a tabela tem independente da quantidade de páginas a fim de transcrever todos os dados de qualquer tabela em PDF, independente de seu números de linhas e colunas.
O CÓDIGO:
Sub lerPDF()
Application.ScreenUpdating = False
Dim objWord As New Word.Application
Dim docWord As Word.Document
caminhoArq = "C:\Users\briel\Downloads\Operações inad - por protudos - por PA.pdf"
'objWord.Visible = True
Set docWord = objWord.Documents.Open(caminhoArq, False, True)
For linha = 1 To 11
For coluna = 1 To 4
Cells(linha, coluna).Value = WorksheetFunction.Clean(WorksheetFunction.Trim(docWord.Tables(1).Cell(linha, coluna).Range.Text))
Next coluna
Next linha
docWord.Close
Set docWord = Nothing
objWord.Quit
Set objWord = Nothing
Application.ScreenUpdating = True
End Sub
Percebe-se que como padrão, foi atribuído 11 linhas e 4 colunas. Como alternativa, até tentei acoplar essa parte, depois de "Set docWord = objWord.Documents.Open(caminhoArq, False, True)", no código, a fim de substituir o "11" e o "4" por "Lin" e "Col", respectivamente, mas deu erro na depuração:
Dim Lin, Col
ActiveDocument.Tables(1).Select
Lin = Selection.Tables(1).Rows.Count
Col = Selection.Tables(1).Columns.Count
Em anexo, consta a planilha com o referido código. Gostaria de ajuda nesse caso, por gentileza 🙂
Postado : 24/07/2022 4:21 pm