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)非常易于安装和使用:
- ALT-F11调出VBE窗口
- ALT-I ALT-M打开一个新的模块
- 粘贴东西,closuresVBE窗口
如果保存工作簿,则UDF将随之保存。 如果您在2003年以后使用的是Excel版本,则必须将该文件另存为.xlsm而不是.xlsx
要删除UDF:
- 如上所示调出VBE窗口
- 清除代码
- 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必须启用这个工作!