【问题标题】:How to delete an entire row if two cells contain specific text如果两个单元格包含特定文本,如何删除整行
【发布时间】:2015-03-12 15:20:30
【问题描述】:

如果两个单元格(可以在工作表的任何列中)包含特定文本,我需要可以删除整行的 VBA 代码。

我有一个每日生成的打印报告文件,并且在此文件中存在文本(在非特定列中)"printed BlackWhitepages, total = #""printed Colourpages, total = #" 也在任何列中。

# 代表一个数字,因此在我的文件中可能有 0-99999....,具体取决于打印的页数。

该文件具有从ABA 的列和数千行,并且BlackwhitepagesColourpages 文本可能位于每一列上,具体取决于打印作业。

我想让 VBA 查看整个工作表,如果一行包含 "printed BlackWhitepages, total = 0""printed Colourpages, total = 0",则应该删除整行。 p>

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    试试下面的代码:

    Sub DeleteRow()
    
    For i = 1 To Range("A" & Rows.Count).End(xlUp).Row
        VarBnW = 0
        VarCol = 0
        For Each cell In Range("A" & i & ":" & "BA" & i)
    
            If Trim(cell.Value) = "Gedruckte Schwarzweißseiten, insgesamt = 0" Then VarBnW = 1
            If Trim(cell.Value) = "Gedruckte Farbseiten, insgesamt = 0" Then VarCol = 1
    
            If VarCol + VarBnW = 2 Then
                MsgBox cell.Address
                cell.EntireRow.Select
                Selection.Delete
                i = i - 1
            End If
    
        Next cell
    Next i
    
    End Sub
    

    【讨论】:

    • 您好 izzymo,感谢您提供的代码,但如果我激活它,则没有任何反应。我为你创建了一个测试文件,你可以看到我的数据是什么样子的。你可以在这里下载它Dropbox。我只删除了一个包含打印文件名的列(以确保隐私),并将应删除的单元格标记为黄色,请参见第 17、45、46、47、119、193、194 和 197 行。
    • 仅供参考,文件中的文本为德语,因此必须删除的文本为 "Gedruckte Schwarzweißseiten, insgesamt = 0"" Gedruckte Farbseiten, insgesamt = 0"
    • 它不起作用的原因是文本开头的空格。我现在已经编辑了代码来解决这个问题。并将代码修改为德语。请参考上面编辑的答案。
    • 感谢编辑的代码,它的工作完美:),所以我的问题得到了回答。对不起,我在这里而不是上面回答,但我不知道我应该在哪里发表评论,你的代码对我有帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-01-27
    • 1970-01-01
    • 2022-10-06
    • 2022-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多