|
本帖最后由 zzzxxxmmm 于 2024-4-22 23:03 编辑
食堂流水记录表_删除特定行要求:
整体要求:查找某一列的单元格等于特定值,则删除该单元格所在的整个行数据。
1、E列(部门),含有高的年级,例如高2024级1班、高2024级2班、高2024级3班、高2025级1班、高2025级2班、高2025级3班、高2025级4班、高2026级1班、高2026级2班、高2026级3班、高2026级4班、教师
2、I列(交易班次)中的,晚餐、早餐
3、K列(交易类型)中的,有卡变更、换卡、存款、挂失、补卡、纠错
我自己参考搞的,但数据有很多行(可以上万行),一行一行的循环删除,用时太多太慢。。求大神出手优化为数组,,或帮小弟重新写一个。。谢谢。
代码:
Sub 删除一行()
Dim R As Long
t = Timer
For R = Range("A65536").End(xlUp).Row To 1 Step -1
If InStr(Range("I" & R), "晚餐") + InStr(Range("I" & R), "早餐") + InStr(Range("K" & R), "存款") + InStr(Range("K" & R), "挂失") + InStr(Range("K" & R), "换卡") _
+ InStr(Range("E" & R), "教师") + InStr(Range("E" & R), "高2024级1班") + InStr(Range("E" & R), "高2024级2班") + InStr(Range("E" & R), "高2024级3班") _
+ InStr(Range("E" & R), "高2025级1班") + InStr(Range("E" & R), "高2025级2班") + InStr(Range("E" & R), "高2025级3班") + InStr(Range("E" & R), "高2025级4班") _
+ InStr(Range("E" & R), "高2026级1班") + InStr(Range("E" & R), "高2026级2班") + InStr(Range("E" & R), "高2026级3班") + InStr(Range("E" & R), "高2026级4班") _
+ InStr(Range("K" & R), "有卡变更") + InStr(Range("K" & R), "补卡") + InStr(Range("K" & R), "纠错") _
Then
Rows(R).delete Shift:=xlUp
End If
Next
MsgBox "OK" & " 耗时: " & Timer - t & "秒!"
End Sub
|
|