Excel 宏 VBA 从一个月的电子表格中删除特定数据
Excel Macro VBA Deleting specific data from a month's spreadsheet
我对 Visual Basic 应用程序还很陌生,我想知道如何使用宏来格式化电子表格的特定部分。
我附上截图,我想删除从凌晨12点到早上8点的一个月这样典型的数据。请让我知道如何使用 Excel 宏做很多事情。
这是一个解决方案,您可以在其中提供循环范围,检查该范围内的单元格,然后在检查所有单元格后删除整行:
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 范围内创建了一系列日期(在这里使用你的)。在这里您可以看到哪些行将被删除:
同时更改时间标准:
from_time = "19:37:38" 和 to_time = "22:01:38"
我对 Visual Basic 应用程序还很陌生,我想知道如何使用宏来格式化电子表格的特定部分。
我附上截图,我想删除从凌晨12点到早上8点的一个月这样典型的数据。请让我知道如何使用 Excel 宏做很多事情。
这是一个解决方案,您可以在其中提供循环范围,检查该范围内的单元格,然后在检查所有单元格后删除整行:
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 范围内创建了一系列日期(在这里使用你的)。在这里您可以看到哪些行将被删除:
同时更改时间标准: from_time = "19:37:38" 和 to_time = "22:01:38"