2番目のExcelファイルから日付にアクセスするexcel-vbaモジュールを作成したかったのです。 最初に2番目のファイルをvba-rangeオブジェクトに開き、ワークシート範囲をvba-range-objectにコピーし、その後2番目のファイルを閉じたいと考えました。VBA Excel - 2番目のファイルからVBA範囲のオブジェクトへのコピー範囲
データ処理は、vba-rangeオブジェクトでのみ行われます。
私は次のことを試してみました:私は2番目のファイルを閉じるまで
Set oMeasuresWorkbook = Workbooks.Open(sMeasuresFileName)
Set oSrcRange = oMeasuresWorkbook.Names("MEASURES").RefersToRange
MsgBox oSrcRange(1, 1)
oMeasuresWorkbook.Close
'problem: after closing the second file (oMeasuresWorkbook) the
oSrcRange Object is gone
MsgBox oSrcRange(1, 1) 'error here as the oSrcRange Object is gone
すべてが正常に動作します。一見、oSrcRangeは元のデータへの参照です。 btw。同じ振る舞い、例えば、私が範囲にアクセスした場合。
設定oSrcRange = oMeasuresWorkbook.Sheets(1).Range( "A:G")
それでは、どのI "ディープコピー" の範囲だろう。私はrange.copyを試みましたが、semmingly私はレンジオブジェクトを初期化する方法を知らない(と私はワークシートにデータをコピーしたくない)。
は、私は自分自身を明らかにしたとsombodyが
ありがとうを助けることを願って!
私はあなたが 'oMeasuresWorkbook'を閉じた後に' oSrcRange'を 'Copy'したいと思います。それを '閉じる'の前にコピーしないのはなぜですか? –
あなたは配列を使うべきです、あなたのコードはもっと速く動くでしょう。上記のようにデータをコピーしたい場合は、2'ndファイルを実行した後、2番目のExcelファイルのデータをベクターに格納してから2番目のExcelファイルを閉じる必要があります。その後は、あなたが望むようにベクターで遊ぶことができます。しかし、私の勧告は、あなたが必要とするものに対して配列を使用することです – Ionut