vba - 使用数组过滤和修改数据
问题描述
这是提取和列出匹配单元格的后续帖子
现在,下面的代码比较了同一张表(A 和 B)中包含公司名称的两列。它找到任何完全匹配的名称,并将它们列在 C 列中。
我想修改它以使用从 A 列和 B 列派生的实际数据表。A 列来自第 2 页的 AF 列。B 列源自工作表 3,L 列。数据从单元格 2 开始。
我还想修改结果:
当前:如果列 A = B 对于大于 2 的行,则列 C 获取列 B 的值
目标:如果 Sheet2.Column AF = Sheet3.Column L 对于大于 2 的行,则 New Sheet 从 Sheet3 中获取相应的行
Sub matchComps()
Application.ScreenUpdating = False
Dim i As Long, j As Long, arrA As Variant, arrB As Variant, arrC As Variant
With Worksheets("Sheet1")
arrA = .Range(.Cells(3, "A"), .Cells(.Rows.Count, "A").End(xlUp)).Value2
arrB = .Range(.Cells(3, "B"), .Cells(.Rows.Count, "B").End(xlUp)).Value2
ReDim arrC(1 To Application.Min(UBound(arrA, 1), UBound(arrB, 1)), 1 To 1)
For i = LBound(arrA, 1) To UBound(arrA, 1)
If Not IsError(Application.match(arrA(i, 1), arrB, 0)) Then
j = j + 1
arrC(j, 1) = arrA(i, 1)
End If
Next i
.Cells(3, "C").Resize(UBound(arrC, 1), UBound(arrC, 2)) = arrC
End With
Application.ScreenUpdating = True
End Sub
这将有效地在表 (4) 中为表 (3) 中的所有公司创建一个新的数据表,这些公司使用表 (3) 中的数据与表 (2) 中的公司匹配。
解决方案
推荐阅读
- laravel - 使用自定义请求类代替 NovaRequest (FormRequest) 在 Laravel Nova 中创建资源很热门?
- python - 标记化时如何只返回实际标记,而不是空变量?
- jquery - 显示/隐藏文本预览显示双重
- java - 如何读取/更新存储在地图中的值,然后该地图位于 Cloud Firestore 中的数组中?
- ruby-on-rails - Rails:按类别搜索和过滤书籍
- c# - 如何在 Moq 中验证对象类型参数
- php - php csv文件数据导入在数组中获取相同页面
- c# - 如何从 javascript 代码中调用 C# 事件?
- logstash - Logstash 无法写入输出文件
- javascript - 使用 Angular 6 获取应用程序 url