Gostaria apenas de adicionar o seguinte após Subrange.Select:
Selection.NumberFormat = "@"
para definir o Subrange para o formato de texto.
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?