是否可以从Excel 2002工作簿中的所有工作表返回所有范围的列表?

时间:2010-04-17 01:37:11

标签: list range excel-2002

我想从Excel 2002中提取“特殊”数据(客户端要求,不能更改)其中包含的工作簿和工作表。我已在此“特殊”数据类别中对范围进行了分类。我想获取所有范围的列表,理想情况下,工作簿中的所有工作表。我感兴趣的属性是范围名称和范围地址。我一直在谷歌搜索一段时间,并没有找到任何相关的东西。

我假设Excel 2002 API会暴露这样的内容:

ApplicationClass app = new ApplicationClass();
Workbook workbook = app.Workbooks.Open(@"c:\file.xls", ...);
Worksheet worksheet = workbook.Worksheets["sheet1"] as Worksheet;
Range[] ranges = worksheet.GetAllRanges();

或类似的东西。但是,我很遗憾地错了。

Excel 2002可以实现吗?

1 个答案:

答案 0 :(得分:0)

如果要查找Named的所有范围,则应查看Workbook.Names集合。 Names集合中的每个Name都有一个RefersTo属性,该属性提供Name引用的Formula或Range Reference。 (但请注意,名称可以是公式而不是范围引用)
Dim oNM as Name

对于ActiveWorkbook.Names中的每个oNM debug.print oNM.Refersto
下一个oNM