2017-02-10 14 views
0

私は約32のワークシートを持つワークブックを持っています。私は新しいワークシートを追加するためにC#を使用しています。そして、最後にワークシートを追加します。 2番目のワークシートとして。追加されたワークシートの位置を制御することは可能ですか?前、後、カウント、およびType:追加されたワークシートのコントロール位置

xlApp = new Excel.Application(); 
xlWorkBook = xlApp.Workbooks.Add(misValue); 
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1); 
xlWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)xlWorkBook.Worksheets.Add(System.Reflection.Missing.Value, xlWorkBook.Worksheets[xlWorkBook.Worksheets.Count], System.Reflection.Missing.Value, System.Reflection.Missing.Value); 
xlWorkSheet.Name = "Added through code"; 
+0

試してみます'xlWorkSheet.Move(Missing.Value、xlWorkBook.Sheets [1]);' –

+0

@AlexK。 - '名前'のコンパイルエラーが表示されない '存在しない'が現在のコンテキストに存在しない ' – BellHopByDayAmetuerCoderByNigh

答えて

1

Worksheets.Addは、次の4つのパラメータを取ります。

"After"パラメータを最後のワークシートとして渡しているため、最後に追加されています。

新しいワークシートを特定の場所に追加するには、whereを指定する必要があります。

あなたはそれが2番目のワークシートになりたい場合は、パラメータ「後」として最初のワークシートを渡す:

xlWorkBook.Worksheets.Add(System.Reflection.Missing.Value, 
     xlWorkBook.Worksheets[1], // worksheets are 1 based 
     System.Reflection.Missing.Value, 
     System.Reflection.Missing.Value); 

それともそれが名前のワークシートの後にそれを追加することができます。

xlWorkBook.Worksheets.Add(System.Reflection.Missing.Value, 
     xlWorkBook.Worksheets["sheet1"], 
     System.Reflection.Missing.Value, 
     System.Reflection.Missing.Value); 
+0

これは.Moveingよりもはるかに優れています。 –

+0

無効なインデックスのエラーが表示されます。それは1ベースであることを意味しますか? – BellHopByDayAmetuerCoderByNigh

+1

[はいです](http://superuser.com/questions/988321/which-excel-objects-are-zero-based-and-which-are-one-based) – stuartd

関連する問題