首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果在excel 2007 vba中的第r列行中有2个值,则删除重复的行。

如果在excel 2007 vba中的第r列行中有2个值,则删除重复的行。
EN

Stack Overflow用户
提问于 2011-08-16 14:21:43
回答 1查看 681关注 0票数 0
代码语言:javascript
运行
复制
ActiveSheet.Range(cells("$2", "$A"), cells("$" & CStr(mowz), "$Q"))._
RemoveDuplicates                         
Columns:=Array(1, 2, 6, 7, 8, 9), Header:=xlYes 

这是我录制的宏,并用它在excel 2007 vba.But中删除重复项我得到了一个新任务solve.That是我必须删除重复的行,当且仅当它的"Rth“列中有值2,否则它不应该删除它,即使它是重复的。

有没有办法在复制行宏中加入一个条件?请让我知道。任何建议都会被接受

在我的工作表中,我有16列,如果1,2,6,7,8,9列中有相同的值,上面的宏会删除重复的列,但问题是,如果它有所有的6列复制,并且在它的第r列中也有一个"2“值,那么它必须删除它,如果第r列有其他值,即使所有6列都是相同的,它也不应该删除它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-08-16 18:11:05

我不知道你的其他代码,所以我不能集成它,但是这里有一个sub(),它将遍历你的R列,如果它在R列中找到"2“,它将删除整行。您可以通过添加"Call Delete2s“将其添加到其他代码中("call”是可选的,但我倾向于包含它)。

代码语言:javascript
运行
复制
Sub Delete2s()
Range(Cells(1, "R"), Cells(Rows.Count, "R").End(xlUp)).Select

Dim lastRow As Long
lastRow = ActiveSheet.UsedRange.Rows.Count

For i = lastRow To 1 Step -1
    If Selection.Rows(i).Value = 2 Then
        Selection.Rows(i).EntireRow.Delete
    End If
Next 
End Sub

它是如何工作的:它找到R列中使用的最后一个单元格(你可以调整它),然后向后循环(当你删除单元格时你需要这样做,否则你会搞乱循环)。如果值为2,则删除整行!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7074317

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档