別のエクセルファイルの特定シートを 現在開いているエクセルシートにコピーする
プログラムを組もうと思うのですがうまくいきません。
目的のプログラムは、ファイルのパス、ファイル名、シート名を指定すると
その中の特定セル(A1:B10)の範囲を現在の指定シート例えばsheet3にコピーするものです。
問題は、コピー元のエクセルシートには、マクロが組み込まれておりまして、
シートをアクティブにすると、プログラムが走ってしまうようで
エラーになります。
そこで、ファイルを開かず、直接シートのセルをコピーできれば良いと思いましたが、
シートの特定セルを直接参照するプログラムですと、実行速度が異常に遅いです。
コピー元のマクロを動かさないようにコピーする方法、もしくは
高速に他ファイルのシートにアクセスする方法をご存知の方、ご教授をお願いします。
ちなみに、直接参照するプログラムは、以下のようなものです。
Dim wsPaste As Worksheet Set wsPaste = ThisWorkbook.Sheets(3) Dim dataRng As Range
'Spath = ファイルのフルパス
'Sfiles = ファイル名
'Ssheet = シート名
With wsPaste Set dataRng = .Range("A8:g100")'コピーする範囲 End With Dim c As Range For Each c In dataRng.Cells c.Formula = _ "='" & Spath & _ "[" & Sfiles & "]" & Ssheet & "'!" & c.Address ' Next With wsPaste.UsedRange .Copy .PasteSpecial xlPasteValues End With
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/02 22:55
2019/12/03 00:48