2016-07-18 15 views
0

Excelワークブックに12の新しいワークシートを作成しようとしています。私は、各用紙の名前を1月の名前(1月〜12月)に変更したいと考えています。リストを使用したシートの名前付けC#

コード:シートの変数名については

List<string> Months = new List<string> { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }; 
for (int i = 0; i < Months.Count; i++) 
      { 
       Microsoft.Office.Interop.Excel.Worksheet "sheet" + i = (Worksheet)xlApp.Worksheets["Sheet" + (i+1)]; 
       "sheet" + i.Name = Months[i]; 
      } 

、私は、各ワークシート"sheet" + i (a number 0-11)に名前を付けたいと思います。

完全な例は次のようになります...

Microsoft.Office.Interop.Excel.Worksheet sheet0 = (Worksheet)xlApp.Worksheets["Sheet1"]; 
      sheet0.Name = "Jan"; 

すべてが("sheet" + i)命名変数以外にも正常に動作します。助言がありますか?あなたのコードで

+0

'私は'あなたが達成しようとしているものとは反対の 'Name'プロパティを持っているかのように'私は ' – gravity

+0

@gravity Oh ok。それは私がやろうとしていることではありません。私はワークシートの名前を "sheet" + iとしたい。そのシートの名前を変更したい...私はそれをどうやってできるのか知っていますか? – Michael

答えて

2

、あなたが持っている:彼らは確かにsheet0という変数を使用していますが、とても厳しく、それを実行する必要はありません例で

Microsoft.Office.Interop.Excel.Worksheet "sheet" + i = (.....) 
"sheet" + i.Name = Months[i]; 

を。変数は、mySheetまたはnextSheetのような任意の名前を持つことができます。

"sheet"+iのような番号付き変数名を "ビルド"する必要はありません。さらに、それは単には動作しませんsheet0は完全な変数名です。 0は名前の一部です。"(引用符)はなく、変数名に数字を「追加」しません。このように新しい変数を作成することはできません。

は代わりに、ただの通常の名前を選択:

for(....) 
{ 
    Microsoft.Office.Interop.Excel.Worksheet justOneOfTheSheetsAtTime = (.....) 
    justOneOfTheSheetsAtTime.Name = Months[i]; 
} 

ループ内であることは重要ではありません。ループが反復するたびに、同じ変数名が使用され、別のシートが挿入されます。 1つの変数を使用して&がループを介して100枚のシートを変更するのに問題はありません。

+0

ありがとうございました!私は同じ名前を再使用することができないことを理解していませんでした。 – Michael

1

私は、これはあなたがコメントから欲しかったものに対する迅速な検証の後、首尾よく私のために働いていることを確認することができます

あなたは `「シート」+ i.Name`変数を参照しようとしているしている
List<string> Months = new List<string> { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }; 

Application xlApp = new Application(); 
Workbook bkMonths = xlApp.Workbooks.Add(); 
xlApp.Visible = true; 

for (int i = 0; i < Months.Count; i++) 
{ 
    Worksheet sheetCurrent = xlApp.Worksheets.Add(); 
    sheetCurrent.Name = Months[i]; 
} 
関連する問題