gpt4 book ai didi

vba - excel vba中最大值的地址

转载 作者:行者123 更新时间:2023-12-04 21:53:53 24 4
gpt4 key购买 nike

我有 1 列有 200 个数字。
数字从零开始,到达最高点(X),然后减少到负值到最低点(Y),然后增加。最后它以零结束。
0 1 2.... 10 3 2 -1 ....-10 -9 -8... 0

我得到了最大值

Sub Largest()
Dim rng As Range
Dim X As Double
Set rng = Sheet2.Range("B2:B201")
X = Application.WorksheetFunction.Max(rng)
Worksheets(1).Range("D3").Value = X
End Sub

与 Min(rng) 作为 Y 的最小值相同

我正在尝试将找到的值 X 和 Y 的地址作为字符串获取。

例如

Xadd 是一个字符串减法; Yadd 是一个字符串声明

Xadd = X 值的地址; Yadd = Y 值的地址

这样我就可以像直接使用一样进行进一步处理

范围(Xadd:Yadd)

大多数地方我只能找到使用msgbox而不是字符串来查找地址的教程。你可以看到附图。
如果我绘制图表,它将是这样的。

enter image description here

所以如果我得到X和Y的范围地址,我可以把循环分成两条曲线
  • Y 到 X
  • X 到 Y

  • 这就是为什么我需要将 X 和 Y 的地址作为字符串获取,以便我可以将它们输入循环并进行进一步处理。

    如何将地址作为字符串获取,或者有没有其他方法可以解决这个问题?

    最佳答案

    此函数返回包含指定范围内最大值的单元格的地址(如果有问题,则返回空字符串,例如范围不包含值):

    Function maxMatch(rge As Range) As String

    Dim fnd As Range, mx As Double

    'get maximum value in range
    mx = Application.WorksheetFunction.Max(rge)

    'get range object containing location of [mx]
    Set fnd = rge.Find(mx, , xlValues)

    'return address of first matched cell
    If Not fnd Is Nothing Then maxMatch = fnd.Address

    End Function

    它可以在 VBA 中使用,也可以作为工作表函数使用。请注意,如果有多个等于最大值的值,则该函数将仅找到第一个出现。

    示例用法:

    工作表功能:
    =MAXMATCH(A1:B50)

    VBA功能:
    Dim mySearchRange as Range
    Set mySearchRange = Sheets("Sheet1").Range("A1:B50")
    MsgBox MaxMatch(mySearchRange)

    ...或简化:
    MsgBox MaxMatch(Sheets("Sheet1").Range("A1:B50"))

    如果有需要找 后续比赛 ,公式可以根据需要进行循环调整。它将使用 Range.Find Method用于初始搜索,然后使用 Range.FindNext Method 循环连续匹配. (不要与 Range.Next Property 混淆,它模拟 Tab 键,返回对“下一个单元格”的引用。)

    更多信息:
  • MSDN : Range.Find Method (Excel VBA)
  • MSDN : Range.FindNext Method (Excel VBA)
  • MSDN : WorksheetFunction.Max Method (Excel VBA)
  • MSDN : Object model (Excel VBA reference)
  • 关于vba - excel vba中最大值的地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48851296/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com