C# Interop 名称在当前上下文中不存在
C# Interop the name does not exist in the current context
我正在使用 C# Interop 根据传递给函数的参数从 Excel 工作表中获取值,但出现以下错误:
the name 'sheet' does not exist in the current context
这是我的代码:
public void getIndexes(int num)
{
var wb = (Excel.Workbook)Globals.ThisAddIn.Application.ActiveWorkbook;
var wsEvars = wb.Sheets["Evars"];
var wsEvents = wb.Sheets["Events"];
if (num == 0)
{
var sheet = wsEvars;
}
if (num == 2)
{
var sheet = wsEvents;
}
if (num != 2)
{
var rng = (Excel.Range)sheet.Range[sheet.Cells[3, 2], sheet.Cells[3, 25]];
}
}
我想 sheet
变量应该在第一个 if
语句之前初始化...但是这个变量的类型应该是什么,因为它是一个 COM 对象?
如果您已经设置了对 Excel 互操作的引用,那么请像这样声明它们:
Excel.Worksheet sheet = null;
Excel.Workbook wb = Globals.ThisAddIn.Application.ActiveWorkbook;
Excel.Worksheet wsEvars = wb.Sheets["Evars"];
Excel.Worksheet wsEvents = wb.Sheets["Events"];
您要查找的类型是Excel.Worksheet。
正如您正确推测的那样,您可以在第一个 if
语句之前声明它。
public void getIndexes(int num)
{
var wb = (Excel.Workbook)Globals.ThisAddIn.Application.ActiveWorkbook;
var wsEvars = wb.Sheets["Evars"];
var wsEvents = wb.Sheets["Events"];
Excel.Worksheet sheet = null; // Declared here
if (num == 0)
{
sheet = wsEvars;
// Rest of code
...
作为参考,您可以将鼠标悬停在关键字 var
上,工具提示会告诉您它将编译成的类型。
我正在使用 C# Interop 根据传递给函数的参数从 Excel 工作表中获取值,但出现以下错误:
the name 'sheet' does not exist in the current context
这是我的代码:
public void getIndexes(int num)
{
var wb = (Excel.Workbook)Globals.ThisAddIn.Application.ActiveWorkbook;
var wsEvars = wb.Sheets["Evars"];
var wsEvents = wb.Sheets["Events"];
if (num == 0)
{
var sheet = wsEvars;
}
if (num == 2)
{
var sheet = wsEvents;
}
if (num != 2)
{
var rng = (Excel.Range)sheet.Range[sheet.Cells[3, 2], sheet.Cells[3, 25]];
}
}
我想 sheet
变量应该在第一个 if
语句之前初始化...但是这个变量的类型应该是什么,因为它是一个 COM 对象?
如果您已经设置了对 Excel 互操作的引用,那么请像这样声明它们:
Excel.Worksheet sheet = null;
Excel.Workbook wb = Globals.ThisAddIn.Application.ActiveWorkbook;
Excel.Worksheet wsEvars = wb.Sheets["Evars"];
Excel.Worksheet wsEvents = wb.Sheets["Events"];
您要查找的类型是Excel.Worksheet。
正如您正确推测的那样,您可以在第一个 if
语句之前声明它。
public void getIndexes(int num)
{
var wb = (Excel.Workbook)Globals.ThisAddIn.Application.ActiveWorkbook;
var wsEvars = wb.Sheets["Evars"];
var wsEvents = wb.Sheets["Events"];
Excel.Worksheet sheet = null; // Declared here
if (num == 0)
{
sheet = wsEvars;
// Rest of code
...
作为参考,您可以将鼠标悬停在关键字 var
上,工具提示会告诉您它将编译成的类型。