2011-09-16 9 views
1

だから、C#を使用してExcelのセル内の値を変更する方法を尋ねましたが、ドロップダウンリストの値を変更したい場合はどうしますか?シートの修正に使用しているコードは以下のとおりです。どんな助けもありがとうございます。ドロップダウンリストの値を変更するExcel C#

public virtual Object ActiveSheet { get; set; } 

private void button3_Click(object sender, EventArgs e) 
{ 
var sheet = (Excel._Worksheet)this.ActiveSheet; 
sheet.Cells[6, 6] = "6"; 
} 

シートが開きますが、リストに移動するとNullReferenceExceptionが表示されます。

+0

どのような種類のリストですか? –

+0

ドロップダウンリストのドロップダウンリストの1つは2,4,6のオプションがあり、シートにアクセスすると自動的にリストの値を変更できます。 –

+0

どのような** ** **ドロップダウンリストの?私が考えることができる3つの異なるタイプがあります。 –

答えて

2

私はそれを使用してください長い時間がかかりました!

using Excel = Microsoft.Office.Interop.Excel; 

    public virtual Object ActiveSheet { get; set; } 

    private void button15_Click(object sender, EventArgs e) 
    { 
     //Gets ActiveSheet to Modify 
     Excel.Application oXL; 
     Excel.Workbook oWB; 
     Excel.Worksheet oSheet; 

     //Start Excel and get Application object. 
     oXL = (Excel.Application)Marshal.GetActiveObject("Excel.Application"); 
     oXL.Visible = true; 
     oWB = (Excel.Workbook)oXL.ActiveWorkbook; 
     oSheet = (Excel.Worksheet)oWB.ActiveSheet; 

     //Generate Linear Guide Supports using Design Table in Solidworks 
     if (comboBox1.Text == "0")//no external rails 
     { 
      oSheet.Cells[6, 4] = "0"; //Change Value in Cell in Excel Cell Location [y-axis, x-axis] 
     } 
     //Quit Excel 
     oXL.Quit(); 
    } 
0

2行目にブレークポイントを設定し、sheetと等しいものを参照してください。

ブック内のシートをアクティブ化していない場合は、wb.ActiveSheetは何と同等になりません。

具体的には、sheetwb.Sheets(0)に設定するか、どちらかのシートを設定する必要があります。

+0

ええ、申し訳ありませんが、私は実際にこのコードを間違って編集しました。アクティブシート –

+0

@Russel Ah、大丈夫です。しかし、事前にシートを活性化しましたか?私は自分でそれをテストする必要がありますが、エンジンは最初のシートを自動的にアクティブにしません。既にそれを有効にしていて、 'sheet'が値を持っていれば、私は他のコメント作成者に同意します。もっとコードを表示する必要があります。 – jonsca

+0

ええ、それは実際にはsolidworkの設計テーブルを使用して複雑です。実際にウィンドウが開き、それが停止してNullReferenceExceptionが返されます。だから私は、セルを参照している方法が間違っているかもしれないと思っています。 –

関連する問題