Excel宏VBA从一个月的电子表格中删除特定数据

时间:2018-06-12 16:22:07

标签: excel excel-vba excel-2010 vba

我是Visual Basic应用程序的新手,我想了解如何使用宏格式化电子表格的特定部分。

我附上了截图,我希望删除从上午12点到早上8点的数据一个月的典型数据。请让我知道如何使用Excel宏做很多事情。

enter image description here

1 个答案:

答案 0 :(得分:1)

这是一个解决方案,您可以在其中提供检查此范围内的单元格的循环范围,然后在检查所有单元格后删除整行:

Sub remove_rows()

    'range of dates to be checked
    Dim target_range As Range
    Set target_range = Range("A1:A10")

    'range of cells to be removed
    Dim remove_range As Range

    Dim from_time As String
    Dim to_time As String

    from_time = "19:37:38"
    to_time = "22:01:38"

    'loop to get all cells
    For Each cell In target_range

        If TimeValue(cell) > from_time And TimeValue(cell) < to_time Then

            Debug.Print TimeValue(cell)

            If remove_range Is Nothing Then
                Set remove_range = cell
            Else
                Set remove_range = Union(remove_range, cell)
            End If

        End If

    Next cell

    'just for debuging puposes (delete this line later)
    remove_range.Select

    'remove all rows (change it if you want to shift cells...)
    remove_range.EntireRow.Delete

    Set remove_range = Nothing

End Sub

我在我的A1:A10范围内创建了一系列日期(在这里使用你的)。在这里,您可以看到哪些行将被删除:

enter image description here

同时更改时间标准: from_time =“19:37:38”和to_time =“22:01:38”