arrays - 用于根据多个条件选择/复制数据的 VBA 代码
问题描述
几天来我一直在努力写这个宏,我终于决定寻求你的帮助。
这是我在工作表中的内容:
测试 - 作业 ID、受让人和任务作为标题
A1 - 身份证
B1 - 受让人
C1 - 任务
*其余标题是我尝试过的一些excel公式,但没有成功。
- 有不同的没有。给定数据中的作业数,每个作业只有 2 个任务。每项工作的任务(task1 和 task2)由 2 名受让人分别完成或由同一受让人完成(对于某些工作)。
我想要达到的目标:
我想以这样一种方式过滤数据,即宏应该只选择每个受让人的五个 task1 和 task2。
But ideally, when a task2 of a job is picked, task 1 of the same job should also be picked keeping in mind that the assignee that did that task did not have more than 5 task1;s (or) task2's picked.
我的想法是,宏应该能够理想地保留日志或删除数据。特定受让人的任务一旦达到阈值 5。
简单来说,没有。of Job IDs picked do not matter, but when any job ID is picked, both task 1 and 2 of that job should be picked and each assignee should equally have 5 task1 and task2's.
不符合条件的 ID 可以忽略。但最终结果应该是这样的:每个受让人应该有 5 个 task1 和 task2,但应该选择任何作业 ID 的 task1 和 task2
我试过使用这些 excel 公式:
- 我已将受让人和任务连接起来,并使用 =COUNTIFS($D$2:D2,D2) 检查该列中是否存在相同的重复
- 现在我检查了每个作业 ID 是否满足给定条件 - =IF(AND(E3<=5,E2<=5),"Yes","No")
-这仅导致过滤满足条件的数据,但由于公式无法自动执行多个条件的过程,因此数据不足。
- 在所有相应的工作表中,我已经给出了预期的结果和实现的结果。
我已经尝试了一些 VBA 代码来过滤出受让人的 task1。
Sub Pick()
Dim N As Long, i As Long
a = Worksheets("Test").Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To a
If Worksheets("Test").Cells(i, 3).Value = "Task1" Then
Worksheets("Test").Rows(i).Copy
Worksheets("IDs").Activate
b = Worksheets("IDs").Cells(Rows.Count, 1).End(xlUp).Row
Worksheets("IDs").Cells(b + 1, 1).Select
Worksheets("IDs").Paste
End If
Next
Application.CutCopyMode = False
End Sub
这是我所能得到的。
解决方案
推荐阅读
- xaml - xamarin.forms xaml 值不能为空参数名称:类型
- php - 在 PHP 中为选择下拉菜单设置默认值
- scala - 如何为rest api自动生成加特林模拟
- javascript - 在 Javascript 中将字符串转换为 JSON 对象
- python - 为什么这个输出不同?
- java - 在 Java 中将对象转换为 ArrayList
- javascript - 为什么 "moment('Tue Mar 31 2020').utc().format()" 在不同的时区返回不同的结果?
- python - Python TypeError:需要一个整数(获取类型元组)-(OpenCV / Numpy)
- neural-network - 神经网络中的所有神经元不是总是激发/激活吗?
- r - 使用 kwic() 搜索高级正则表达式模式