当第二张表中存在值时,删除整行 [英] Delete entire row when a value exist in a second sheet

查看:91
本文介绍了当第二张表中存在值时,删除整行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有2张表:sheet1和sheet2。我的单元格A3(sheet1)中的值不是常数。并且sheet2中的许多文件。



我想做的是当单元格A3(Sheet1)中的值与列A(Sheet2)中的值相同时),它将删除整个行,找到该值(Sheet2)。



这是我的尝试。它不工作:没有行被删除。

 如果工作表(Sheet1)。范围(A3)。 Text = Worksheets(Sheet2)。Range(A:A)。然后
Dim f As String
f = Worksheets(Sheet1)。Range(A3)
设置c =工作表(Sheet2)。范围(A:A)。Find(f)
工作表(Sheet2)。范围(c.Address())。EntireRow.Delete
结束如果


解决方案

Sub Test()



Dim ws As Worksheet



对于x = 1 To Rows.Count



If ThisWorkbook.Sheets(Sheet2)。Cells(x,1).Value = ThisWorkbook.Sheets(Sheet1)。Cells(3,1).Value Then ThisWorkbook.Sheets(Sheet2)。Cells x,1).EntireRow.Delete



Next x



End Sub


I have 2 sheets: sheet1 and sheet2. I have a value in cell A3 (sheet1) which is not constant. And many files in sheets2.

What I would like to do, is when the value in cell A3 (Sheet1) is the same as the value in the column A (Sheet2), it will delete the entire row where is find this value (Sheet2).

This is my attempt. It doesn't work: no rows are deleted.

If Worksheets("Sheet1").Range("A3").Text = Worksheets("Sheet2").Range("A:A").Text Then
    Dim f As String
    f = Worksheets("Sheet1").Range("A3")        
    Set c = Worksheets("Sheet2").Range("A:A").Find(f)
    Worksheets("Sheet2").Range(c.Address()).EntireRow.Delete
End If

解决方案

Sub Test()

Dim ws As Worksheet

For x = 1 To Rows.Count

If ThisWorkbook.Sheets("Sheet2").Cells(x, 1).Value = ThisWorkbook.Sheets("Sheet1").Cells(3, 1).Value Then ThisWorkbook.Sheets("Sheet2").Cells(x, 1).EntireRow.Delete

Next x

End Sub

这篇关于当第二张表中存在值时,删除整行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆