gpt4 book ai didi

vba - 比较两张纸并删除整行

转载 作者:行者123 更新时间:2023-12-04 21:32:12 25 4
gpt4 key购买 nike

我有两张纸, Sheet1 和 sheet2 。

表 1 是我的源表,我在 A 列中提到了项目编号。

表 2 是我的目标表,其中包含数据库中的项目编号列表。

我正在将源工作表的 A 列与目标工作表的 E 列进行比较,如果它们都具有相同的项目编号,那么我将删除整行。

我为此使用下面的代码。在 6 项目编号 4 被删除和 2 没有被删除。

但是,当我将相同的项目编号从目标表复制到源表时,它就会被删除。我不确定为什么会这样。任何人都可以指导我如何解决这个问题。

下面是代码

Sub spldel()

Dim srcLastRow As Long, destLastRow As Long
Dim srcWS As Worksheet, destWS As Worksheet
Dim i As Long, j As Long
Application.ScreenUpdating = False
Set srcWS = ThisWorkbook.Sheets("sheet1")
Set destWS = ThisWorkbook.Sheets("sheet2")
srcLastRow = srcWS.Cells(srcWS.Rows.count, "A").End(xlUp).Row
destLastRow = destWS.Cells(destWS.Rows.count, "E").End(xlUp).Row
For i = 5 To destLastRow - 1
For j = 1 To srcLastRow

' compare column E of both the sheets
If destWS.Cells(i, "E").Value = srcWS.Cells(j, "A").Value Then

destWS.Cells(i, "E").EntireRow.delete
End If
Next j
Next i
End Sub

最佳答案

当您尝试删除行时,请记住以相反的顺序循环,否则即使符合删除条件的行也可能会从删除中跳过。

所以两个For循环应该是这样的......

For i = destLastRow - 1 To 5 Step -1
For j = srcLastRow To 1 Step -1

关于vba - 比较两张纸并删除整行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49360544/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com