检查ListObject值

时间:2016-10-27 19:25:12

标签: c# excel-interop listobject

我正在尝试检查ListObject中的某个范围,看它是否包含数字9.我一直得到一个"无法隐式转换类型' int' to' bool'"。

if (xlWorkBook.Worksheets["Sheet1"].ListObjects["table1"].Range[1, 1].value2 = 9)
{
    xlSheet.Cells[5, 5] = "YES!";
}
else 
{ 
    xlSheet.Cells[5, 5] = "NO!"; 
}

已解决的答案:

if (xlWorkBook.Worksheets["Sheet1"].ListObjects["table1"].Range[1, 1].value2 == 9)
{
    xlSheet.Cells[5, 5] = "YES!";
}
else 
{ 
    xlSheet.Cells[5, 5] = "NO!"; 
}

在阅读了C#的操作符后,我发现" =="用于比较,而" ="用于作业。

2 个答案:

答案 0 :(得分:5)

if (xlWorkBook.Worksheets["Sheet1"].ListObjects["table1"].Range[1, 1].value2 == 9)

你的if应该是这样的。在===

之间有所区别

答案 1 :(得分:3)

if (xlWorkBook.Worksheets["Sheet1"].ListObjects["table1"].Range[1, 1].value2 == 9)

您使用的是对齐运算符,而不是比较运算符。所以编译器认为你要分配价值。它变成了int语句而不是bool。这就是它给出错误的原因不能隐式地将类型'int'转换为'bool。所以你应该使用== not =