次の Excel Interop オブジェクトが宣言されているとします。
Dim ExcelToKeepHidden As New Microsoft.Office.Interop.Excel.Application
Dim SheetToCopy As Microsoft.Office.Interop.Excel.Workbook
...
Dim ExcelToShow As New Microsoft.Office.Interop.Excel.Application
基本的に、私はバックグラウンドでExcelの非表示のインスタンスを保持しています(これにはシートが含まれていますSheetToCopy
-ユーザーの注意から離れてすべての核心的な作業を続けています)。次に、ボタンShow Excel Sheetがあります。ユーザーがそれをクリックすると、私のSheetToCopy
オブジェクトを取得して、そのコピーをExcelToShow
アプリケーションに作成する必要があります。
つまり、元のファイルはさらに操作するためSheetToCopy
にExcelToKeepHidden
アプリケーションに残りますがExcelToShow
、ユーザーがボタンをクリックした時点でシートのコピーが表示されます。
したがって、私の課題はSheetToCopy.Copy()
、新しいシートが Excel のまったく異なるインスタンスにあるため、メソッドをそのまま使用できないことです。また、私が行っている操作の種類のために、フィルターを適用しているため、セルの範囲をコピーすることはできず、そのpaste
機能では書式設定などを維持できません.
基本的に、私が見ている唯一の解決策は、同じExcelアプリケーションでシートのコピーを新しいワークブックに作成し、それを閉じてから2番目のExcelアプリケーションで再度開くことですが、これを達成するためのより良い方法??
何かご意見は??(VB または C# コードはまったく問題ありません)
ありがとう!!!!)