4

Запустив макрос в электронной таблице Excel, я получаю ошибку времени выполнения:

1004 Команда не может быть выполнена с использованием указанного диапазона.

Выбранный Debug и выделенный код:

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

Поиск в другом месте, и я нахожу, что это обычно означает, что была предпринята попытка сортировки, когда не было выбранной ячейки.

Тем не менее, строка непосредственно перед выделенным кодом:

SubRange.Select

И две строки, следующие сразу за этими двумя, по существу идентичны, просто сортируют другой раздел листа:

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

Связана ли разница в SortRange.Выберите в сравнении с SubRange.Выбрать?

В ходе тестирования я обнаружил, что ошибка возникает, когда определенный столбец, содержащий числовые значения, импортируется как текст, а не как Общий. Данные столбца являются числовыми, но имеют начальные нули и не требуют математического манипулирования, поэтому в соответствии с хорошими практиками Excel их следует рассматривать как текст.

Любые идеи, что я должен сделать, чтобы попытаться диагностировать это?

1 ответ1

2

Я бы просто добавил следующее после Subrange.Выбрать:

Selection.NumberFormat = "@"

установить поддиапазон в текстовый формат.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .