gpt4 book ai didi

excel - 在 Excel 中,我如何编写循环,除非满足条件,否则将继续删除单元格的内容?

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

所以,我有三个非常大的数据列。我希望这些匹配,但列之间有很多不匹配的行。

我想要做的是编写一个循环宏来删除单元格中的内容 F2如果它们不等于 A2 中的内容或 K2 .但是,我只能找到有关为范围编写循环宏的详细信息。是否可以在同一个单元格上一遍又一遍地执行命令?到目前为止,我有:

Sub ArrayMatch()
Application.ScreenUpdating = True
Dim F As Range
For Each F In Range("F2:F2043").Cells
F.Select
If ActiveCell <> ActiveCell.Offset([0], [-5]) And ActiveCell <> ActiveCell.Offset([0], [5]) Then
Selection.Delete Shift:=xlUp
Else: Stop
End If
Next

目前,我只想在其中任何一个相等时停止代码。但是,按照我在此处定义范围的方式,该代码仅适用于该范围内的所有其他单元格。我可以改写此范围以将其余代码应用于单元格 F2一遍又一遍地?

谢谢!我会继续试验我所拥有的,同时热切地等待回复!

最佳答案

假设您的输入:

Can I rephrase this range to have the rest of the code applied to cell F2 over and over again?



这不是你所期望的。线索是你应该检查范围内的每个单元格,只有在它不符合标准的情况下才移动到下一个。否则该行将被删除,您应该留在同一位置,即不要向下移动,因为如果 A1已删除, A2现在变成 A1 ,你应该再检查一次。

下面的代码将完成这项工作(也许您应该修改标准,但想法是这样):
Sub RemoveRows()

Dim i As Long
Dim ActiveCell As Range

i = 2

Do While i <= 2043
Set ActiveCell = Range("F" & i)
If ActiveCell <> ActiveCell.Offset([0], [-5]) And ActiveCell <> ActiveCell.Offset([0], [5]) Then
Selection.Delete Shift:=xlUp
Else
i = i + 1
End If

Loop

End Sub

这是非常相似的任务的示例: https://www.dropbox.com/s/yp2cwphhhdn3l98/RemoweRows210.xlsm

关于excel - 在 Excel 中,我如何编写循环,除非满足条件,否则将继续删除单元格的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14815813/

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