次の 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# コードはまったく問題ありません)
ありがとう!!!!)