如何找到单元格的命名范围 - VSTO

Web*_*ere 6 c# excel vsto

我使用C#和VSTO生成了一系列行.我基本上已经加载了几行数据并给每个单元格一个NamedRange.我的问题是,我知道开始的行和结束行索引,如何遍历每个单元格并检索它的NamedRange.我试过Excel.Range range =(Excel.Range)m_worksheet.Cells [x,y]; 得到范围很好,但是当我做一个range.Name.ToString(); 我得到"System .__ COM ...."而不是名字.有人可以帮忙吗?

谢谢

sha*_*pan 8

下面是示例代码(从这里开始)如何在Excel中迭代命名范围.

private Excel.Workbook m_workbook;
object missing = Type.Missing;

   public void testNamedRangeFind()
    {
        m_workbook = Globals.ThisAddIn.Application.ActiveWorkbook;
        int i = m_workbook.Names.Count;
        string address = "";
        string sheetName = "";

        if (i != 0)
        {
            foreach (Excel.Name name in m_workbook.Names)
            {
                string value = name.Value;
                //Sheet and Cell e.g. =Sheet1!$A$1 or =#REF!#REF! if refers to nothing
                string linkName = name.Name;
                //gives the name of the link e.g. sales
                if (value != "=#REF!#REF!")
                {
                    address = name.RefersToRange.Cells.get_Address(true, true, Excel.XlReferenceStyle.xlA1, missing, missing);
                    sheetName = name.RefersToRange.Cells.Worksheet.Name;
                }
                Debug.WriteLine("" + value + ", " + linkName + " ," + address + ", " + sheetName);
            }
        }

    }
Run Code Online (Sandbox Code Playgroud)