抵消手动找到的范围

时间:2018-10-03 19:47:40

标签: excel excel-vba

我正在使用这些方程式

=CELL("address",INDEX(J61:W61,MATCH(LARGE((J61:W61),1),J61:W61,0)))

查找该范围内最大值单元的单元地址。

例如,它给了我这个结果。 $ T $ 61(包含最高值)。 现在,我想使用该信息并将其向上偏移51行,以提取该列的标题。在这种情况下,如何使用这些信息和公式或VBA查找$ T $ 10的内容?

3 个答案:

答案 0 :(得分:1)

在这种情况下不需要获取单元地址。此外,CELL volatile 函数,因此应尽可能避免使用。

简单地:

=INDEX(J10:W10,MATCH(MAX(J61:W61),J61:W61,0))

致谢

答案 1 :(得分:0)

我最终找到了一种使用vba来完成所需功能的方法

Sub Top_3_Problems()

First_Address = Range("D62")
Second_Address = Range("D63")
Third_Address = Range("D64")


First_problem = Range(First_Address).Offset(-51)
Second_problem = Range(Second_Address).Offset(-51)
Third_problem = Range(Third_Address).Offset(-51)

Range("B40") = First_problem
Range("B41") = Second_problem
Range("B42") = Third_problem




End Sub

答案 2 :(得分:0)

VBA

中如何执行此操作的快速示例

这只是一个简单的例子。如果实施了该对象,则需要使用工作表对对象进行适当的限定,并且Find方法需要添加选项

Option Explicit

Sub MaxHeader()

Dim Found As Range, SearchRange As Range

Set SearchRange = Range("J61:W61")
Set Found = SearchRange.Find(WorksheetFunction.Max(SearchRange))

If Not Found Is Nothing Then MsgBox Cells(10, Found.Column)

End Sub