2016-10-04 7 views
0

私は解決策を見つけることができない奇妙な問題にぶち当たっています。特定のワークシート名を含むブック内のワークシートを削除しようとしていますが、この例外が発生します。「ワークシートクラスのDeleteプロパティを取得できません」ワークシートクラスは他の場所で使用できますが、私は、Delete();を使用しようとすると、方法、または上記シートの可視性を設定する方法さえも同じことをする。なぜ喜ばれるのかについての助け!ComException C#のExcelファイルからワークシートを削除しようとしたとき

Microsoft.Office.Interop.Excel.Sheets TestWorksheets = TestBook.Worksheets; 
if (TestWorksheets.Count > NumberofsheetsIWantToKeep) 
{ 
    int WorkSheetCounter = TestWorksheets.Count; 
    while (WorkSheetCounter > NumberofsheetsIWantToKeep) 
    { 
     if(TestWorksheets[WorkSheetCounter].Name.Contains("blah")) 
     { 
     TestWorksheets[WorkSheetCounter].Delete(); 
     } 
     WorkSheetCounter--; 
    } 
} 
+0

https://msdn.microsoft.com/en-us/library/s9kdkks3.aspx – MethodMan

+0

@MethodMan返信いただきありがとうございます!私は解決策を探していて、わかったことから、指定したとおりにワークシートを削除しているとは思っていますが、それでもまだ動作していません。それは私の問題です! – Vincep92

+0

以前に投稿したリンクに基づいて、ワークシートが探しているものと一致する場合は、forループとカウンタ/インデックスを使用して、同じ方法を使用して1行をforループにすることができます。私はこれがより意味をなさないことを願っています – MethodMan

答えて

0

結論ワークブックとワークシートをアクティブにしてから削除する必要がありました。私は愚かな気分になり、それについて謝罪します!

0

直接削除する代わりに以下のコードを使用してください。ワークブックとワークシートを有効にします。

Microsoft.Office.Interop.Excel.Workbook book = TestBook; 
    book.Activate(); 
    TestWorksheets[WorkSheetCounter].Activate(); 
    TestWorksheets[WorkSheetCounter].Delete(); 
関連する問題