gpt4 book ai didi

vba - 选择行并删除不会删除行

转载 作者:行者123 更新时间:2023-12-01 11:39:19 25 4
gpt4 key购买 nike

我编写了一些简单的代码,将一个工作表中的单元格与另一个工作表中的单元格进行匹配,然后如果单元格相等则删除整行。

代码正确地选择了行,但出于某种原因拒绝实际删除我的工作表中的行。编辑:一些行删除。其他人则没有,即使它们与确实删除的值具有完全相同的值。如果有人可以提供帮助,我们将不胜感激。

Sub delFunds()
Dim fCell As Range 'Fund cell
Dim fRng As Range 'Fund range
Dim wCell As Range 'Working sheet cell
Dim wRng As Range 'Working sheet range
Dim n As Long

Set fRng = Worksheets("Funds").Range("C2:C117")
Set wRng = Worksheets("Working sheet").Range("I3:I7483")

For Each fCell In fRng.Cells 'Loop through all funds
For Each wCell In wRng.Cells 'Loop through all working cells
If StrComp(wCell.Value, fCell.Value, vbTextCompare) = 0 Then 'If equal then delete
n = wCell.Row
Rows(n & ":" & n).Select
Selection.Delete Shift:=xlUp
End If
Next wCell
Next fCell 'Go to next fund

End Sub

最佳答案

我会在没有嵌套循环的情况下使用这段代码:

Sub delFunds()
Dim rngToDel As Range
Dim fRng As Range 'Fund range
Dim wCell As Range 'Working sheet cell
Dim wRng As Range 'Working sheet range

Set fRng = Worksheets("Funds").Range("C2:C117")
Set wRng = Worksheets("Working sheet").Range("I3:I7483")

For Each wCell In wRng 'Loop through all working cells
' if wCell found in Fund range then delete row
If Not IsError(Application.Match(Trim(wCell.Value), fRng, 0)) Then
If rngToDel Is Nothing Then
Set rngToDel = wCell
Else
Set rngToDel = Union(rngToDel, wCell)
End If
End If
Next wCell

If Not rngToDel Is Nothing Then rngToDel.EntireRow.Delete
End Sub

关于vba - 选择行并删除不会删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23088436/

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