如何解决VBA Excel-根据值返回第一行和最后一行
我需要从数组中获取每个读取值的第一行和最后一行。
阵列为黄色。从中,我读到列D(货币)。
预期结果显示为蓝色:在数组D列中找到的每个值的第一行和最后一行。
有人可以提出一个简单的VBA代码来实现它吗?
解决方法
请尝试下一个代码,
Sub testFirstLastOccurrences()
Dim sh As Worksheet,lastRA As Long,lastRD As Long,arrA As Variant,k As Long
Dim ArrFin As Variant,i As Long,j As Long,lngFirst As Long,lngLast As Long
Set sh = ActiveSheet
lastRA = sh.Range("A" & Rows.count).End(xlUp).Row
lastRD = sh.Range("D" & Rows.count).End(xlUp).Row
arrA = sh.Range("A2:A" & lastRA).Value
ReDim ArrFin(1 To 3,1 To lastRD)
For i = 1 To UBound(arrA)
For j = 2 To lastRD
If lngFirst = 0 And arrA(i,1) = sh.Range("D" & j).Value Then lngFirst = j
If arrA(i,1) = sh.Range("D" & j).Value Then lngLast = j
Next j
If lngFirst <> 0 Then
k = k + 1
ArrFin(1,k) = arrA(i,1): ArrFin(2,k) = lngFirst: ArrFin(3,k) = lngLast
End If
lngFirst = 0: lngLast = 0
Next i
ReDim Preserve ArrFin(1 To 3,1 To k)
sh.Range("F1:H1").Value = Array("ARRAY()","1st Row","Last Row")
'Drop the processed data:
sh.Range("F2").Resize(UBound(ArrFin,2),UBound(ArrFin,1)).Value = _
WorksheetFunction.Transpose(ArrFin)
End Sub
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。