gpt4 book ai didi

excel - 如何正确偏移行以在 VBA 的列中查找最高数字?

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

我正在尝试在 VBA 中运行此代码以找出哪一行在“A”列中的数字最高?但它不起作用。有人可以帮忙吗?以下是代码:

Sub ForNextDemo()
Dim MaxVal As Double
Dim Row As Long

MaxVal = WorksheetFunction.Max(Range("A:A"))
For Row = 1 To Rows.Count

If Range("A1").Offset(1, 0).Value = MaxVal Then
Range("A1").Offset(1, 0).Activate

MsgBox "Maximum Value is in" & Row

Exit For
End If
Next Row
End Sub

最佳答案

您的代码失败,因为您始终检查相同的单元格。不管是哪个值row有,Range("A1").Offset(1, 0)将始终检查单元格 A2 (A1 下方 1 行)
您的意思可能类似于 Range("A1").Offset(row, 0)但是,有一种更简单(更快)的方法来获取具有最大值的行,使用 Match -功能。
一个建议:您应该始终告诉 VBA 应该使用哪个工作表。当你写 Range(A1) ,它将使用当前事件工作表。这并不总是你想要的。相反,例如使用 ThisWorkbook.Sheets(1) (存储代码的工作簿的第一页)。您也可以使用工作表名称,例如 ThisWorkbook.Sheets("Sheet1")

Dim MaxVal As Double
Dim Row As Long

With ThisWorkbook.Sheets(1)
Dim r As Range
Set r = .Range("A:A")
MaxVal = WorksheetFunction.max(r)
Row = WorksheetFunction.Match(MaxVal, r, 0)
Debug.Print "The maximum value is " & MaxVal & " and it is found in row " & Row
End With

关于excel - 如何正确偏移行以在 VBA 的列中查找最高数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71939223/

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