2011-09-13 11 views
0

私はクエリを開始するセルをリフレッシュして呼び出すWebクエリを持っています。次のようなもの:excel vbaでWebクエリの結果をソート

Sheets(sheetBeingProcessed).Range(queryAdr).QueryTable.Refresh BackgroundQuery:=False 

私は、ワンクリックをVBAを使用して、私のマクロは、すべてのシートを通過することを更新し、それらを一つずつを更新し、それぞれが、それぞれの日のデータの異なる行に戻ってくる(時には0行)、それはすべて受け入れられ、すべてがよさそうだ。

ここでは、結果を各シートの「成熟日」列でソートします。どのように私はそれを行うことができますか?

2つの困難は、「成熟期日」列がどこにあるかを示す方法です。これは簡単です。 2番目の問題は...どうすれば結果を並べ替えることができますか?

私はそこに確信している...

を各ワークシートをアクティブにして範囲を選択しようとしたソートが、それは以下の最後の行が失敗している

ActiveWorkbook.Worksheets(sheet).Activate 
ActiveWorkbook.Worksheets(sheet).Range(sortStartAddress).Select 
Dim resultRange As Variant 

Range(Selection, Selection.End(xlDown)).Select 
Range(Selection, Selection.End(xlToRight)).Select 
Set resultRange = ActiveWorkbook.ActiveSheet.Selection 

を動作しませんでしたワークシートの間を飛ばしたり、範囲を選択したりすることなく、よりクリーンな方法でなければなりません。

答えて

1

私はだと思います。あなたは各シートをソートするためにそれらをアクティブにする必要があります。

また、CurrentRegionオプションを使用して領域全体を選択することができます。これは、あなたがしようとしている何のために働くかどうかを確認してください:

ActiveWorkbook.Worksheets(sheet).Range(sortStartAddress).Select 
Dim resultRange as Range 
set resultRange = selection.CurrentRegion.Select 
+0

funnily十分にこの1つは働いていた...以前はなかったです。ありがとう – Charbel

1
ActiveWorkbook.Worksheets(sheet).Range(sortStartAddress).CurrentRegion.Sort 'add sort options... 
+0

自分の答えよりもあなたの答えがいいです。 – PaulStock

+0

okは明日の朝に見えるだろうが、それは有望に見える。ありがとう – Charbel

+0

私はソートキーを指定し、現在の領域を取得する必要があることを取得する必要があったので、これは十分ではありませんでした。ポールの答えが助けになりました。しかし、とにかくありがとう、良いヒントを学ぶ – Charbel

関連する問題