如何在一个工作表中列出所有excel当前区域

为了浏览我要求分析的复杂电子表格,我需要工作表中所有当前区域的列表。 Excel的帮助不给我很多线索。 到目前为止,我的解决scheme是使用特殊的单元格函数来遍历区域,但速度很慢。

Function list_all_current_regions(work_sheet) Dim current_region_dic As New Dictionary Set r = work_sheet.Cells(1, 1) For Each x In Array(xlCellTypeConstants, xlCellTypeFormulas) Set c = work_sheet.Cells(1, 1).SpecialCells(x, 23) For Each a In c.Areas If Not current_region_dic.Exists(a.CurrentRegion.Address) Then current_region_dic.Add a.CurrentRegion.Address, "" End If Next Next Set list_all_current_regions = current_region_dic End Function 

有一个更聪明的方式来列出工作表中的所有当前区域?

多年来,我避免在工作表上出现多个范围,这是因为您正在询问的原因,当客户给我一个devise为单个“电子表格”的模型时,我将断开连接的内容移动到自己的工作表上。

唯一的解决办法是使用命名范围。 可以使用附加到“工作簿”和“工作表”对象的“名称”集合来访问它们。

我会给出的另外一个提示是只使用左上angular的命名区域,然后您可以使用CurrentRegion属性来获取整个区域。 这有助于扩展您不想进入的区域来设置和重置整个范围。

https://msdn.microsoft.com/en-us/library/office/ff196678.aspx?f=255&MSPPError=-2147217396