2017-06-22 10 views
0

私はワークシートをソートするために以下のコードを使用し、それは動作しますが、ソートしようとしているワークシート上にある場合のみです。あなたがいないなら、それはエラーを送信します。アクティブ/可視でないワークシートをソート

Run-time error '1004': The Sort reference is not valid. Make sure that it's within the data you want to sort, and the first Sort box isn't the same or blank.

私はそれをアクティブにすることは本当にオプションではありません、隠されたこのワークシートを維持する必要がありますするつもりです。コード内に行がありませんか?

おかげ

CODE:

Sheet23.Columns("A:C").Sort key1:=Range("A2"), order1:=xlAscending, _ 
       key2:=Range("B2"), order2:=xlDescending, Header:=xlYes 

答えて

2

あなたはいつもそうでない場合は、ActiveSheetを参照して、ワークシートで範囲()または細胞を()資格必要があります。

Sheet23.Columns("A:C").Sort key1:=Sheet23.Range("A2"), order1:=xlAscending, _ 
          key2:=Sheet23.Range("B2"), order2:=xlDescending, _ 
          Header:=xlYes 
0

あなたがしています参照セルの相対参照を使用:

Sheet23.Columns("A:C").Sort key1:=Range("A2"), order1:=xlAscending, _ 
      key2:=Range("B2"), order2:=xlDescending, Header:=xlYes 

=Range("A2")常にアクティブシートを参照します。

ThisWorkbook.Sheets("Sheet23").Columns("A:C").Sort key1:=ThisWorkbook.Sheets("Sheet23").Range("A2"), order1:=xlAscending, _ 
      key2:=ThisWorkbook.Sheets("Sheet23").Range("B2"), order2:=xlDescending, Header:=xlYes 

希望の結果が得られるはずです。

関連する問題