web-dev-qa-db-ja.com

Excel2010マクロ「指定された範囲を使用してコマンドを完了できませんでした」

Excelスプレッドシートでマクロを実行すると、実行時エラーが発生します。

1004指定された範囲を使用してコマンドを完了できませんでした。

選択したデバッグと強調表示されたコードは次のとおりです。

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

そして、これら2つの直後の2行は基本的に同一であり、シートの異なるセクションを並べ替えるだけです。

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

違いはSortRange.SelectとSubRange.Selectで結びついていますか?

テストでは、数値を含む特定の列がテキストとしてインポートされた場合と一般としてインポートされた場合にエラーが発生することがわかりました。列データは数値ですが、先行ゼロがあり、数学的に操作することはできません。したがって、Excelの適切な方法では、テキストとして扱う必要があります。

これを診断するために私がすべきことはありますか?

4
music2myear

Subrange.Selectの後に次を追加するだけです。

Selection.NumberFormat = "@"

サブレンジをテキスト形式に設定します。

2
Lance Roberts