私は比較的簡単な問題を解決しようとしていますが、わかりません。私の目的は、メインExcelアプリケーションのワークシート内のセル範囲を、新しく作成した2番目のExcelアプリケーションのワークシート内の別の範囲(同じサイズ)にコピーすることです。VB:範囲を別のExcelアプリケーションにコピー
Set secondExApp = CreateObject("Excel.Application")
私は後でこの取扱説明書を使っています。これまで私は2つの異なる方法を試みました。どちらも正しく動作しません。
0:製造/はじめ
Set srcWb = Application.ActiveWorkbook
Set srcSheet = srcWb.Worksheets("example")
Set dstApp = CreateObject("Excel.Application")
Set dstWb = dstApp.Workbooks(1)
Set dstSheet = dstWb.Worksheets(1)
1:PasteSpecial - (!)画像を配信代わりにちょうど範囲
srcSheet.Range("A1:B2").Copy
dstSheet.Range("A1:B2").PasteSpecial xlPasteAll
2 .: Range.Copyメソッド[宛先] - うまくいきません - 同じアプリケーション内のシートに対してのみこのメソッドを使用できますか?
srcSheet.Range(srcSheet.Cells(..., ...), srcSheet.Cells(..., ...)).Copy _
dstSheet.Range(dstSheet.Cells(..., ...), dstSheet.Cells(..., ...))
ご迷惑をおかけして申し訳ございません。
編集: 私はすでに、「マクロの記録」機能でプレイしましたが、私は、「選択」または細胞/シート/など
を「活性化」することなく、自分自身でそれをコーディング好みます
編集(がを解く): はあなたが私のために良い更なる出発点を提供、非常に多くのGSergとiDevlop両方ありがとうございます。私はxlClipboardFormatDspText
としてExcelの定数までいくつかの研究を行った。
新しいExcelインスタンスを開くと[貼り付け(特殊)]メニューが変更されたという事実は本当に助かりました。
新しいインスタンスを作成する代わりに、単にブック(隠すことができる)を追加し、このオブジェクトを使用してコンテンツを追加するだけです。同じインスタンスに保持されているので(また、タスクマネージャも見てください)、[貼り付け(特殊)]メニューは完全に同じです。
Range.Copy [destination]を選択せずに使用することも可能です。
結果:
'Hides the new workbook
Application.ScreenUpdating = False
Set dstWb = Workbooks.Add
Set dstSheet = dstWb.Worksheets(1)
srcSheet.Range(srcSheet.Cells(..., ...), srcSheet.Cells(..., ...)).Copy
dstSheet.Paste dstSheet.Range(dstSheet.Cells(..., ...), dstSheet.Cells(..., ...))
'Avoids the often seen dashed border around the copied range
Application.CutCopyMode = False
'Setting the initial change back
Application.ScreenUpdating = True
ソフトウェア:Excel 2007の
Excelの同じインスタンスで別のブックの代わりに2番目のExcelアプリケーションを使用するのはなぜですか?私が見ることができる唯一のボーナスは、巨大な計算のためにデュアルコアプロセッサを利用することです。しかし、あなたがそれを必要としないなら、それは遅くなります。 –
@iDevlopどのように面白い。私はあなた自身のことを知った後、あなたのコメントを読んだだけです。非常に便利なコメント! – Mic