C#Excel函数-检测到无法访问的代码

本文关键字:访问 代码 函数 检测 C#Excel | 更新日期: 2023-09-27 18:28:08

我正试图在C#中创建一个函数类,用于excel Automation外接程序。使用下面的简单代码,我想添加与用户选择的颜色匹配的范围中的值(例如,sum range("A1:A10"),其中单元格颜色与"B1"相同,则为:colorSum(A1:A10,B1)。

    public double ColourSum(Range RangeToSum, Range cellContainingColourToSum)
    {
        double currentTotal = 0;
        //return 0; this code is edited from my original posting, due to posting error
        for (int i = 0; i < RangeToSum.Cells.Count;i++) //error at 'int i'
        {
            double iColour = RangeToSum.Interior.ColorIndex(i);
            if (iColour == cellContainingColourToSum.Interior.ColorIndex)
            {
                currentTotal = currentTotal + RangeToSum.Value2(i);
                //return currentTotal;
            }
        }
        return currentTotal;
    }

不幸的是,上面的代码在第4行返回"Unreachable code detected"。我给出的代码示例是我实际想要做的事情的简化示例,但很好地说明了我的观点。我的代码有问题吗?或者我可以用更好的方式来避免这个问题吗?

谢谢,Rico.

为了结束这个问题,以下代码完全有效(更改为(int i…with foreach(Range r…):

    public double ColourSum(Range RangeToSum, Range cellContainingColourToSum)
    {
        double currentTotal = 0;
        foreach (Range r in RangeToSum)
        {
            double iColour = r.Interior.ColorIndex;
            if (iColour == cellContainingColourToSum.Interior.ColorIndex)
            {
                currentTotal = currentTotal + r.Value2;
            }
        }
        return currentTotal;
    }

C#Excel函数-检测到无法访问的代码

代码到达以下行的那一分钟:

return 0;

它将退出,无法访问代码的其余部分。拆下管路。

当行return 0被命中时,函数结束,之后不执行任何操作。因此,它是不可访问的代码。删除此行可使函数正常运行。

在进入循环之前返回0。这就是代码无法访问的原因。

return 0;

也许您的dll没有在输出目录中编译和替换。必须清除并重新生成所有代码。(如果您可以手动从输出文件夹中删除所有内容,那就太好了)。

如果此dll是作为项目引用添加的,则删除并重新添加项目引用。也许是这样。