アプリ版:「スタンプのみでお礼する」機能のリリースについて

VBA初心者です。

Excel VBAで、Webクエリを更新させ、取得したデータを同じBook内の別のSheetに
コピーさせたうえで、データのソート等を行いたいと考えています。

上記の操作をマクロで記録し、走らせてみると、Webクエリのデータ更新(取得)が
完了する前に、それ以降の操作に進んでしまいます。

Webクエリのデータ更新(取得)が完了してから、次の操作に進ませるためには、
どのようにすれば良いでしょうか?
よろしくお願いします。

A 回答 (2件)

WEBクエリを「更新する」マクロをキチンと書いていますね?


(しばしば更新じゃなく「毎回WEBクエリをイチから埋め込み直す」マクロを書いてる初心者さんが多いので)

で、通常は
sub macro1()
 activesheet.querytables(1).refresh backgroundquery:=false
’以下続きの作業
 msgbox "DONE"
end sub

とかで十分です。


#シートにこれまでに何度も何度もWEBクエリを埋め込み直していて、収拾がつかない状態になっていないよう気を付けてください。まっさらのシートに一つWEBクエリを埋めた状態から作業してみて下さい。
    • good
    • 0
この回答へのお礼

keithinさん

遅ればせながら、回答ありがとうございます。
実は、上記回答を参考に、マクロの修正を行なって
きましたが、なかなか思い通りの結果が得られず、
七転八倒の日々でした。
それが、本日やっと解決しました。

結果的には、WEBクエリをSheet内に数十個設定して
いたため、その分の記述が必要だっただけのようです^^;

おかげさまで、解決出来ました。
ありがとうございました。

お礼日時:2013/05/06 14:30

こんにちは!



Webクエリを更新するまで少しマクロを止めてみてはどうでしょうか?

更新コードの次の行に
>Application.Wait Now() + TimeValue("0:00:05")
といったコードを追加してみます。

※ 上記では5秒待つようにしていますが、時間は適宜調整してみてください。m(_ _)m

この回答への補足

こんにちは。
早速の回答ありがとうございます。
待ち時間を調整することで、対応できそうです。

わがままなお願いで恐縮ですが、もし可能であれば
Webクエリの更新が『完了した』ことを確認し、
次のコードを走らせることは出来ませんか?

理由は、Webクエリの更新時間がその都度微妙に
違うためです。
もちろん、先ほどの待機時間を長めに設定すれば
問題ないとは思うのですが・・・
どうぞよろしくお願いします。

補足日時:2013/04/21 11:33
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!