2011-09-14 15 views
1

問題コンボボックスの番号が選択されるたびに、新しいワークシートが作成されるという問題があります。変数をアクティブなシートにのみ追加し、毎回シートを作成しないようにしてください。どんなヘルプも大歓迎です。Excelワークシート問題を追加するC#

この作品は気に入っていますか?

 var xl = new Excel.Application(); 
     xl.Visible = true; 
     var wb = (Excel._Workbook)xl.ActiveWorkbook; //(xl.Workbooks.Add(Missing.Value)); 
     var sheet = (Excel._Worksheet)wb.ActiveSheet; 

     //Generate Linear Guide Support in Solidworks 
     if (comboBox1.Text == "0") 
     { 
      sheet.Cells[6, 4] = "0"; //Cell Location[y-axis, x-axis] 
     } 
     if (comboBox2.Text == "AH") 
     { 
      sheet.Cells[6, 5] = "AH"; 
     } 
     if(comboBox3.Text == "2") 
     { 
      sheet.Cells[6, 6] = "2"; 
     }   
+0

私は既存のワークブックを使用したいと可能 –

答えて

2

このコードを分解して、すべての選択に対して呼び出しません。これを1回だけ実行するように移動することができます。

// Available at the class level. single instance - Singleton pattern may be employed 
    // Check the correct datatype for ExcelSheet 
    ExcelSheet sheet; 
    void UpdateExcelSheet(int row, int col, string value) 
    { 
     if (sheet == null) 
     { 
      var xl = new Excel.Application(); 
      xl.Visible = true; 
      var wb = (Excel._Workbook)(xl.Workbooks.Add(Missing.Value)); 
      sheet = (Excel._Worksheet)wb.ActiveSheet; 
     } 
     sheet.Cells[row, col] = value; 
    } 

    void OnComboSelection() 
    { 
     int row, col; 
     string value; 
     if(comboBox5.Text == "1") 
     { 
      row = 6; col = 6; value = "1"; 
     } 
     if (comboBox3.Text == "2") 
     { 
      row = 6; col = 8; value = "2"; 
     } 
     UpdateExcelSheet(row, col, value); 
    } 
+0

は、私はすでに現在、私はちょうどあなたがworkbooks.add呼び出している –

+0

現在のシート(上変更したいシートを持っている場合は、これらの値を変更することがあります)毎回コンボボックスの値が変更され、新しいワークシート –

+0

が追加され、同じシートに追加するだけで、シートを追加することはできません。 –

関連する問題