我是Excel宏的新手,需要帮助创建一个可以帮助我完成工作的宏。
我有两个部分列表,在单独的工作表中,两个都是针对同一个应用程序,但一个是旧部件列表,另一个是新版本。有时零件清单中可能有一千个零件。
我需要对它们进行比较,以查看是否有任何新部件列表的添加内容,以及是否已从旧列表中删除了任何内容。 然后将添加部分的行复制到标题为“添加”的单独工作表,将删除的部分复制到标题为“已删除”的部分。
同样在比较之前从列表中删除重复项,因为有时会出现重复的部件号。必须删除整行。
所以基本上我想知道是否有办法从新的列表中取出一个单元格,从B1开始,并将它逐一与旧零件列表中的B列进行比较,从B1开始。
如果新列表中的下一个部件号有匹配移动。
如果没有,就像它到达空白单元格一样,将部件号的行复制到新的工作表“Additions”。
反之亦然,将旧部件列表与新部件列表进行比较,如果没有匹配则将行复制到工作表“已移除”。
答案 0 :(得分:1)
正如评论中提到的那样,如果没有看到你已经尝试过的东西,很难帮助你。为了让您开始,我建议您使用宏录制器来学习一些基础知识,例如在单元格之间移动,切换工作表,复制值等。
我能想到的两个组件是宏录制器无法教你的是for循环和if语句。
for循环允许你循环播放"在一系列值上,并为每个单元格执行一次操作,if语句允许您仅在满足条件时执行某些操作(如复制单元格)(如果两个单元格相等)。
简单版本可能类似于:
For i = 1 To 10
If Sheets(2).Range("A" & i).Value <> Sheets(1).Range("A" & i).Value Then
Sheets(3).Range("A" & i).Value = Sheets(2).Range("A" & i).Value
End If
Next i
我知道这是一种过度简化,但希望它能帮助你开始。祝你好运!