,将会有很大的帮助
你好,我在vba中非常新,因为我在这里遇到问题,如果条件正确,请在过滤后的单元格中放置"是">
但是,当我运行代码循环时,即使条件不正确
,也将"是的数据"放置VBA
Sub check()
Dim j As Long
Dim dsheet As Worksheet
Dim lastrow As Long
Dim fr As Range
Dim psheet As Worksheet
Dim c As Range
Set dsheet = Worksheets("Workings")
Set psheet = Worksheets("sheet1")
lastrow = dsheet.Cells(Rows.Count, 1).End(xlUp).row
For j = 1 To lastrow
psheet.Range("M2").Value = dsheet.Range("A2" & j)
psheet.Range("N2").Value = dsheet.Range("B2" & j)
psheet.Range("A1").AutoFilter Field:=1, Criteria1:=psheet.Range("M2")
psheet.Range("B1").AutoFilter Field:=2, Criteria1:=psheet.Range("N2")
psheet.Range("A2:I" & psheet.Cells(Rows.Count, 1).End(xlUp).row).SpecialCells (xlCellTypeVisible)
dsheet.Range("M2").Value = dsheet.Range("A" & j)
dsheet.Range("N2").Value = dsheet.Range("B" & j)
dsheet.Range("A1").AutoFilter Field:=1, Criteria1:=dsheet.Range("M2")
dsheet.Range("B1").AutoFilter Field:=2, Criteria1:=dsheet.Range("N2")
Set fr = psheet.Range("C2:C50").Find(what:="12345", MatchCase:=True)
For Each c In dsheet.Range("E2:E2000" & Range("A" & Rows.Count).End(xlUp).row).SpecialCells(xlCellTypeVisible)
If fr Is Nothing Then
dsheet.Range("A2" & Range("A" & Rows.Count).End(xlUp).row).SpecialCells (xlCellTypeVisible)
If c.Offset(, -1).Value = vbNullString Then Exit For
c.Value = "NO"
Else
dsheet.Range("A2" & Range("A" Rows.Count).End(xlUp).row).SpecialCells (xlCellTypeVisible)
If c.Offset(, -1). Value =vbNullString Then Exit For
c.Value = "Yes"
End If
Next c
Next j
dsheet. AutoFilterMode = False
psheet. AutoFilterMode = False
End Sub
所以,我希望该代码根据条件将"是"或"否"放置,如果有人在此问题中有人帮助我
如果每个语句都需要结束。应该这样:另外,适当的缩进有助于使您的代码更可读。
If fr Is Nothing Then
dsheet.Range("A2" & Range("A" & Rows.Count).End(xlUp).row).SpecialCells (xlCellTypeVisible)
If c.Offset(, -1).Value = vbNullString Then Exit For
End If
c.Value = "NO"
Else
dsheet.Range("A2" & Range("A" Rows.Count).End(xlUp).row).SpecialCells
(xlCellTypeVisible)
If c.Offset(, -1). Value =vbNullString Then Exit For
End If
c.Value = "Yes"
End If