Sub DeleteAlternateRowsWithHeader() Dim rng As Range Dim cell As Range Dim deleteCount As Long Dim keepCount As Long Dim i As Long ' 显示用于选择源数据区域的输入对话框 On Error Resume Next Set rng = Application.InputBox("选择源数据区域:", Type:=8) On Error GoTo 0 If rng Is Nothing Then MsgBox "没有选择任何区域.", vbExclamation Exit Sub End If ' 从第3行开始每隔一行删除一行 (标题行位于第一行) For i = rng.Rows.Count To 3 Step -1 If (i Mod 2) = 1 Then rng.Rows(i).EntireRow.Delete deleteCount = deleteCount + 1 Else keepCount = keepCount + 1 End If Next i ' 统计保留的行数,包括标题行和第2行 keepCount = keepCount + 2 ' 显示程序运行后的信息 MsgBox "删除的行数: " & deleteCount & vbCrLf & "保留的行数: " & keepCount, vbInformationEnd Sub
Sub DeleteAlternateRowsWithHeader()
Dim rng As Range
Dim cell As Range
Dim deleteCount As Long
Dim keepCount As Long
Dim i As Long
' 显示用于选择源数据区域的输入对话框
On Error Resume Next
Set rng = Application.InputBox("选择源数据区域:", Type:=8)
On Error GoTo 0
If rng Is Nothing Then
MsgBox "没有选择任何区域.", vbExclamation
Exit Sub
End If
' 从第3行开始每隔一行删除一行 (标题行位于第一行)
For i = rng.Rows.Count To 3 Step -1
If (i Mod 2) = 1 Then
rng.Rows(i).EntireRow.Delete
deleteCount = deleteCount + 1
Else
keepCount = keepCount + 1
Next i
' 统计保留的行数,包括标题行和第2行
keepCount = keepCount + 2
' 显示程序运行后的信息
MsgBox "删除的行数: " & deleteCount & vbCrLf & "保留的行数: " & keepCount, vbInformation
End Sub