2009-04-07 6 views
0

私は、QueryTableを使用してCSVファイルをスプレッドシートにインポートするマクロを作成しました。私の目標は、CSVデータをインポートし、将来の参照のためにスプレッドシートに保存することです。VBA:どのようにしてQueryTableが更新されないようにしますか?

ただし、QueryTableは外部のCSVファイルで更新されますので、これを防止したいと思います(外部ファイルを忘れてしまいますので)。リフレッシュを防ぐために使用できるQueryTableの設定はありますか、それともこの機能を使用するのは間違った機能ですか?

答えて

5

もしあなたの目標がデータをインポートし、そのデータを最新の状態に保つことではない場合(つまり、CSVで再びリフレッシュする)、クエリテーブルの.Refreshコマンドの後にVBAの最後に、クエリテーブルを削除するだけです。


Sheet1.QueryTables(1).Refresh(偽)
Sheet1.QueryTables(1).Delete

あなたのコードの実行がまで開催しますforgroundクエリを行うためにExcelを依頼するコマンドをリフレッシュするためにはFalseを渡すようにしてくださいデータを取得します。次に、クエリテーブルを追加するセルは通常のセルとして扱われます。

1

VBAを使用して、CSVをブックとして開くことができます。このようなもの。

Set myCSVbook = Workbooks.Open Filename:="C:\dir\myfile.csv", Format:=2 '2 is csv 

これを実行したら、個々のセルをコピーするか、シート全体を1行で別のブックにコピーすることができます。私はそれを行うために、ワークシートオブジェクトにCopyメソッドがあると思います。