複数のシートを含む Excel ワークブックと、各シートのセルに入力される内容を制御する C# クラスがあります。ただし、セルを正しく設定する方法を一生理解することはできません。
クラスには、BuildSheet
というシートを参照しようとするという関数がありますRate_Lock
。
これが私のコードです:
public static void BuildSheet(Excel._Worksheet sheet, string transaction, string occ)
{
Excel.Application objAppl;
Excel._Workbook objWorkbook;
Excel._Worksheet objLockSheet;
try
{
objAppl = System.Runtime.InteropServices.Marshal.GetActiveObject(
"Excel.Application") as Excel.Application;
}
catch (System.Runtime.InteropServices.COMException)
{
objAppl = new Excel.Application();
}
objWorkbook = (Excel._Workbook)objAppl.ActiveWorkbook;
objLockSheet = (Excel.Worksheet)objAppl.Worksheets["Rate_Lock"];
objLockSheet.Cells[18, 6] = transaction;
objLockSheet.Cells[20, 6] = occ;
}
シートを間違って参照しようとしているのだろうか。これについて本当に奇妙なのは、デバッグ中にセルが読み込まれないことです。ただし、デバッグを停止すると、セルは Visual Studio に取り込まれます。
私が間違っていることはありますか?
編集:エラーが発生していないことにも言及する必要があります。また、次を使用して、特定のシートの背後にあるコードでこのコードが機能するようにしました。
objSheet = (Excel._Worksheet)this.Application.Worksheets["Rate_Lock"];
別のシートを参照しようとすると、「this」キーワードは機能しません。