2016-05-19 14 views
0

2つのExcel.Workbook変数wbAとwbBがあるとします。最初の変数は、Excel.Workbooks.Openのようなものを割り当てたワークブックです。VBAでExcelワークブック変数をコピー

今質問: どのようにwbBをwbBに割り当てることができるので、wbBはwbAのコピーであり、その参照だけではありませんか?

私は単純な試みをしましたが、wbB = wbAが、wbBをwbAに参照しているようです。

多くの感謝!

+0

クローンすることを意味しますか? – Gustav

答えて

2

wbAポイントメモリ内のブックオブジェクトには、実際のワークブックではありません。あなたは

Set wbB = wbA 

を行う場合と同じように、あなただけの別のポインタを介したとはいえ、メモリ内にあります同じワークブックへの別のポインタを作成しています。

あなたが実際にワークブックの本当コピーをしたいなら、あなたはちょうどそれをしなければならない - 実際ワークブックをコピーしてwbBへのインスタンスを設定します。

+0

こんにちは!ええ、私はそう思ったよ。だから私は唯一の方法は、wbA.savecopyasのような何かを行うだろうと思うし、wbBの権利とそれを選択?それとももっと良い解決策を知っていますか? –

+0

正確には、使用する変数の数に関係なく、メモリ内の同じブックへのポインタのデイジーチェーンを効果的に作成しているだけなので、物理的にブックをコピーして代わりに新しいポインタを作成する必要があります。 –

+0

FYIでは 'Set wb2 = Workbooks.Add(" wb1へのパス ")"を使用して、もう一方をテンプレートとして使用して新しいワークブックを作成することができます。 – Rory

関連する問題