excel - 基于其他 2 列的计数值
解决方案
比较计数两列
- 如果代码在包含工作表的工作簿中,那么您可以替换
Range(FirstCell)
为 egThisWorkbook.Worksheets("Sheet1").Range(FirstCell)
以确保它在正确的工作表上运行。
编码
Option Explicit
Sub compareCountTwoColumns()
Const FirstCell As String = "A2"
Dim rng As Range
With Range(FirstCell)
Set rng = .Resize(.Worksheet.Rows.Count - .Row + 1, 2)
Set rng = rng.Find( _
What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious)
If rng Is Nothing Then
MsgBox "No data found.", vbCritical, "No Data"
Exit Sub
End If
Set rng = .Resize(rng.Row - .Row + 1, 2)
End With
Dim Data As Variant: Data = rng.Value
Dim Previous As Variant: ReDim Previous(1 To 2)
Previous(1) = Data(1, 1): Previous(2) = Data(1, 2)
Dim Current As Variant: ReDim Current(1 To 2)
Dim Result As Variant: ReDim Result(1 To UBound(Data, 1), 1 To 1)
Dim cCount As Long
Dim i As Long
For i = 1 To UBound(Data, 1)
Current(1) = Data(i, 1): Current(2) = Data(i, 2)
If Previous(1) <> Current(1) Or Previous(2) <> Current(2) Then
Result(i - 1, 1) = cCount
cCount = 1
Else
cCount = cCount + 1
End If
Previous(1) = Current(1): Previous(2) = Current(2)
Next i
Result(i - 1, 1) = cCount
rng.Resize(, 1).Offset(, 2).Value = Result
End Sub
推荐阅读
- javascript - Opera Mini 和 XMLHTTpRequest()
- php - 停止 Eclipse 缩进行注释
- javascript - Sharepoint 2016 Internet Explorer 错误 - window.location.pathname 未定义
- c# - 如何通过 Web Api 控制器转发所有 SPA 页面请求?
- sql-server - Spark 无法终止读取/写入 Azure SQL-DB 的任务
- php - simplexml_load_string 返回不带标签的值
- jquery - 使用 jQuery .filter() 按行过滤表中的文本,不包括特定列
- jmeter - 结果不正确 - java rest api 应用程序的负载测试
- angular - 带有 PKCE 实现的 Angular OpenID 代码流
- powershell - 使用 powershell 更改变量特定文本并创建表格