excel - 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
推荐阅读
- python - 混合浮点数和字符串的问题(连接错误)
- php - MySQL 将查询拆分为多个 Html 表
- excel - 为什么在 Excel / VBA 错误处理中 Err.Description 保持为空?
- spring-boot - 自定义 graphQL 标量 LocalDateTime
- node.js - node-hid:通过序列号获取设备
- java - Selenium Chrome 驱动程序 - 等待驱动程序服务器启动超时
- firebase - firebase auth 是否为不同的提供者存储和管理访问令牌
- flutter - 如何在 Dart 或 Flutter JsonObjectLite 中使用“params.put”发送
- selenium-webdriver - 黄瓜测试失败:线程“主”java.lang.NoClassDefFoundError 中的异常:io/cucumber/plugin/SummaryPrinter
- git - git rebase 所有中间分支