我正在尝试获取电视台调度软件的输出,并在给定时间内删除任何内容。不幸的是,调度软件的输出创建了一个时间文本字段,而不是一个可以格式化为时间的字段。我十多年来没有做过任何真正的编程,这让我很沮丧。以下是该表前几行的示例 - 每月的每一天都包含从上午 6:00 到第二天上午 5:30 的每个程序的条目。
到目前为止我得到的代码是:
Sub delete_extraneous()
Dim rng As Range
Dim j As Integer
Dim m As Integer
m = 1
j = 3
Goto ActiveSheet.Cells(j, m)
With ActiveSheet
lastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
End With
For m = 1 To lastRow
If rng = "6:30a" Or "7:00a" Or "7:30a" Or "8:00a" Or "8:30a" Or "9:00a" Or "9:30a" Or "10:00a" Or "10:30a" Or "11:00a" Or "11:30a" Then
ActiveCell.EntireRow.Delete Shift:=xlShiftUp
End If
Next m
End Sub
最佳答案
使用看起来像时间的文本数组并与之匹配。
Sub delete_extraneous()
dim tms as variant, lastRow as long
tms = array("6:30a", "7:00a", "7:30a", "8:00a", "8:30a", "9:00a", "9:30a", _
"10:00a", "10:30a", "11:00a", "11:30a")
with activesheet
lastRow = .Cells(.Rows.Count, "C").End(xlUp).Row
For m = lastRow to 1 step-1
If not iserror(application.match(.Cells(m, "C").value, tms, 0)) Then
.rows(m).EntireRow.Delete Shift:=xlShiftUp
End If
Next m
.
end with
end sub
关于vba - 在列中的每个单元格中查找特定内容,并在某些情况下删除该行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49436888/