Vba 当第二张图纸中存在值时,删除整行
我有两张纸:第一张和第二张。我在单元格A3(表1)中有一个值,它不是常数。在sheets2中有许多文件 我想做的是,当单元格A3(Sheet1)中的值与列A(Sheet2)中的值相同时,它将删除查找该值(Sheet2)的整行 这是我的尝试。它不起作用:不删除任何行Vba 当第二张图纸中存在值时,删除整行,vba,excel,Vba,Excel,我有两张纸:第一张和第二张。我在单元格A3(表1)中有一个值,它不是常数。在sheets2中有许多文件 我想做的是,当单元格A3(Sheet1)中的值与列A(Sheet2)中的值相同时,它将删除查找该值(Sheet2)的整行 这是我的尝试。它不起作用:不删除任何行 If Worksheets("Sheet1").Range("A3").Text = Worksheets("Sheet2").Range("A:A").Text Then Dim f As String f = Wo
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
我猜您在
.Find()
中找不到任何东西。因为你没有检查它的值,所以你不知道。另外,.Find()
保留上次搜索时设置的所有搜索参数-通过代码或手工在电子表格中进行搜索。虽然只需要What
参数,但为其设置最关键的参数(如下所述)总是值得的,您可能希望将它们全部设置为确保您确切了解搜索方式
Dim f As String
If Worksheets("Sheet1").Range("A3").Text = Worksheets("Sheet2").Range("A:A").Text Then
f = Worksheets("Sheet1").Range("A3")
Set c = Worksheets("Sheet2").Range("A:A").Find(What:=f, Match:=[Part|Whole], _
LookIn:=[Formula|value])
if not c is Nothing then
Worksheets("Sheet2").Range(c.Address()).EntireRow.Delete
else
MsgBox("Nothing found")
End If
End If
查看以查看所有参数及其枚举。子测试()
将ws设置为工作表
对于x=1到行数。计数
如果ThisWorkbook.Sheets(“Sheet2”).Cells(x,1).Value=ThisWorkbook.Sheets(“Sheet1”).Cells(3,1).Value,则ThisWorkbook.Sheets(“Sheet2”).Cells(x,1).EntireRow.Delete
下一个x
End Sub您采取的调试步骤可能重复?乍一看,这似乎是因为您的If
条件将始终为false,但Sheet1的edge情况除外!A3=表2!希望这对你有用,对我也有用。我把整个if语句放在一行。