Macro do Excel 2010 “O comando não pôde ser concluído usando o intervalo especificado”

4

Executando uma macro em uma planilha do Excel, recebo o erro em tempo de execução:

1004 Command could not be completed by using the range specified.

A depuração selecionada e o código realçado são:

Selection.Subtotal GroupBy:=5, Function:=xlSum, TotalList:=Array(6, 7, 8, 9, _
    10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23), Replace:=True, _ 
    PageBreaks:= False, SummaryBelowData:=True

Procurando em outro lugar e acho que isso geralmente significa que uma tentativa foi feita enquanto não havia uma célula selecionada.

No entanto, a linha imediatamente anterior ao código destacado é:

SubRange.Select

E as duas linhas que seguem imediatamente estas duas são essencialmente idênticas, apenas classificando uma seção diferente da planilha:

SortRange.Select
Selection.Sort Key1:=Range("E4"), Order1:=xlAscending, Key2:=Range("A4") _
    , Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
    False, Orientation:=xlTopToBottom

A diferença está amarrada no SortRange.Select versus no SubRange.Select?

No teste, descobri que o erro ocorre quando uma determinada coluna contendo valores numéricos é importada como texto, em vez de ser importada como Geral. Os dados da coluna são numéricos, mas têm zeros à esquerda e não devem ser manipulados matematicamente e, portanto, por boas práticas do Excel, devem ser tratados como texto.

Alguma idéia do que devo fazer para tentar diagnosticar isso?

    
por music2myear 18.05.2011 / 00:20

1 resposta

2

Gostaria apenas de adicionar o seguinte após Subrange.Select:

Selection.NumberFormat = "@"

para definir o Subrange para o formato de texto.

    
por 21.05.2011 / 19:00