尝试通过VBA中的范围名称查找列索引

时间:2017-07-04 15:11:11

标签: excel vba

我目前正在处理此电子表格,并遇到了巨大的困难。基本上,我试图找到包含范围名称“Average”的列索引号。

因此,如果“Average”在列索引22中,那么将返回22,等等。

Range("AA1").Select
Selection.Name = "Average"

Dim colNumber As Integer

colNumber = WorksheetFunction.Match("Average", ActiveWorkbook.Sheets(Sheet1).Range("1, Average"), 0)  'Average is a range name

Columns(colNumber).Insert

每次我为此行获得不同的错误,范围从类型不匹配到全局失败:

colNumber = WorksheetFunction.Match("Average", ActiveWorkbook.Sheets(Sheet1).Range("1, Average"), 0)

我到处搜索,寻找如何根据范围内的范围名称查找列索引号,我找不到任何内容。非常感谢任何帮助。

谢谢!

1 个答案:

答案 0 :(得分:1)

您正在通过以下代码行重新定义范围名称:

Range("AA1").Select
Selection.Name = "Average"

在剩下的代码中,您似乎只是寻找一个文本字符串" Average"在细胞内容中。

获取名为" Average"的范围名称左上角的列。你需要:

Dim lCol As Long
lCol = ThisWorkbook.Names("Average").ReferstoRange.Cells(1,1).Column