Office 2007: como classificar uma tabela do Excel de dentro de uma macro do Word

1

Eu escrevi uma Macro no WinWord2007, que lista estilos e suas propriedades em uma tabela do Excel. A tabela é acessível pelas seguintes 3 linhas:

Dim Oxl_Sheet As Object
Set Oxl_Sheet = CreateObject("Excel.Sheet")
Oxl_Sheet.Application.Visible = True

Eu posso escrever sem problemas em células individuais da tabela, por exemplo:

Oxl_Sheet.Application.Cells(iRow, 2).Value = ActiveDocument.Styles.(iStyle).NameLocal

Gostaria agora de ordenar a tabela completa de dentro da mesma macro do Word, mas me encontrei totalmente incapaz de fazê-lo. Na linha a seguir, por exemplo:

Oxl_Sheet.Application.Sort.SortFields.Add Key:=Range("I2:I356"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal

o compilador reclama que o Sub / Função "Range" não foi definido.

Alguém pode me dar uma dica?

    
por Marcel 22.03.2013 / 17:58

1 resposta

0

Algumas alterações devem fazer com que você corra:

1) Se você quiser manter a planilha do Excel além da execução da macro,     mova a linha:

Dim Oxl_Sheet As Object

no topo da página da macro, fora de qualquer função.

2) Para corrigir o erro de compilação, inclua uma referência à Biblioteca do Excel para definir a função de intervalo:

  • No editor do VBA, 'Ferramentas' - > 'Referências ...'
  • Selecione 'Microsoft Excel < 12.0 ou 14.0 > Biblioteca de Objetos

3) Altere a sintaxe da linha de classificação para qualificar a qual objeto o intervalo se refere:

Oxl_Sheet.Application.Sort.SortFields.Add Key:=Oxl_Sheet.Application.Range("I2:I356"), SortOn:=xlSortOnValues

    
por 22.03.2013 / 18:59