我不想在这里问一个简单的问题,但我已经研究了一段时间但无济于事。它严重限制了我的申请。
为什么我在try块内的excelWorksheet变量上出现红色波浪形(一个名为' excelWorksheet'的本地或参数不能在此范围内声明,因为该名称用于封闭的本地范围)。如果我删除了null声明,那么' excelWorksheet' try catch语句变为红色后。非常感谢任何帮助。以下是代码:
Excel.Worksheet excelWorksheet = null;
try
{
//declare the worksheet variable raw data
string currentSheet = "Raw Data";
Excel.Worksheet excelWorksheet = (Excel.Worksheet)ExcelSheets.get_Item(currentSheet);
}
catch(Exception r)
{
MessageBox.Show("The Raw Data sheet in the report does not exist. " + r);
return;
}
答案 0 :(得分:8)
无法在此范围内声明名为“excelWorksheet”的本地或参数,因为该名称用于封闭的本地范围
您正在尝试重新声明变量。删除声明并简单地使用在封闭范围中声明的变量:
string currentSheet = "Raw Data";
excelWorksheet = (Excel.Worksheet)ExcelSheets.get_Item(currentSheet);
答案 1 :(得分:1)
你能尝试以下吗?。
Excel.Worksheet excelWorksheet = null;
try
{
//declare the worksheet variable raw data
string currentSheet = "Raw Data";
// excelWorksheet变量已经存在于范围内,因此不需要 再次宣布
excelWorksheet = (Excel.Worksheet)ExcelSheets.get_Item(currentSheet);
}
catch(Exception r)
{
MessageBox.Show("The Raw Data sheet in the report does not exist. " + r);
return;
}
答案 2 :(得分:1)
Excel.Worksheet excelWorksheet = null;
使用上面的语句,您已经声明了excelWorksheet变量。您无需再次声明。以下代码:
Excel.Worksheet excelWorksheet = null;
try
{
//declare the worksheet variable raw data
excelWorksheet = ExcelSheets.get_Item("Raw Data") as Excel.Worksheet;
}
catch(Exception r)
{
MessageBox.Show("The Raw Data sheet in the report does not exist. " + r);
return;
}
用于铸造。这是一个很好的做法。