Excel – 检索单元格名称和范围名称

当我寻找最小/最大,不仅我想要的结果,而且单元格名称的结果是以及它的范围名称。

例如= MAX(B2:C20)

B6中的最大值为100,B6是称为第1周的命名范围的一部分。

因此,我们想有一个公式,可以检索:

100,B6,WEEK 1

请帮忙,我整晚都在找这个。

非常感谢。

在这种情况下,我定义范围B5:B7具有名称WEEK1

在这里输入图像说明

和这个简短的UDF()

 Public Function FindMax(rIN As Range) As String Dim mx As Variant, rF As Range, N As Name mx = Application.WorksheetFunction.Max(rIN) Set rF = rIN.Find(What:=mx, After:=rIN(1)) For Each N In ThisWorkbook.Names If Not Intersect(rF, Range(N.RefersTo)) Is Nothing Then lab = N.Name End If Next N FindMax = mx & ", " & rF.Address(0, 0) & ", " & lab End Function 

收益:

在这里输入图像说明

您必须小心排除打印范围等。

编辑#1:

用户定义的函数(UDF)非常易于安装和使用:

  1. ALT-F11调出VBE窗口
  2. ALT-I ALT-M打开一个新的模块
  3. 粘贴东西,closuresVBE窗口

如果保存工作簿,则UDF将随之保存。 如果您在2003年以后使用的是Excel版本,则必须将该文件另存为.xlsm而不是.xlsx

要删除UDF:

  1. 如上所示调出VBE窗口
  2. 清除代码
  3. closuresVBE窗口

从Excel中使用UDF:

 =FindMax(A1:Z100) 

要了解有关macros的更多信息,请参阅:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

有关UDF的具体信息,请参阅:

http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx

macros必须启用这个工作!