vba - 每月删除最后一行不同的空白行
问题描述
我想一直删除第 4 行之间的空白行,直到底部的绿色单元格之前的最后一行(在本例中为第 9 行)。然而,当有新的出口或出口关闭时,最后一行每个月都会改变。请问我该怎么做?目前我每个月都手动修改 vba 代码。
这是我目前的代码:
Sub Raw_Data_Delete_Rows()
Rows("3:3").Select
Selection.AutoFilter
Range("A4:Z9").AutoFilter Field:=1, Criteria1:="="
Range("A4:Z9").Select
Selection.Delete
End Sub
解决方案
这将删除从4
to开始的所有空行last row - 1
Option Explicit
Public Sub RawDataDeleteRows()
Dim ur As Range
Set ur = ActiveSheet.UsedRange
If ur.Rows.Count > 4 Then
With ur.Offset(2).Resize(ur.Rows.Count - 2)
.AutoFilter Field:=1, Criteria1:="="
If .SpecialCells(xlCellTypeVisible).Rows.Count > 1 Then
.Offset(1).Resize(ur.Rows.Count - 4).EntireRow.Delete
End If
.AutoFilter
End With
End If
End Sub
范围解释
- 用于自动筛选的初始范围
ur.Offset(2).Resize(ur.Rows.Count - 2)
.Offset(2)
- 从顶部向下移动 Range 2 行(到第 3 行).Resize(ur.Rows.Count - 2)
- 调整底部,向上 2 行,到最后使用的行
- 要删除的行的验证范围
.SpecialCells(xlCellTypeVisible).Rows.Count > 1
- 检查除 AutoFilter 标头之外的其他(可见)行是否存在
- 用于删除空行的 Range:
.Offset(1).Resize(ur.Rows.Count - 4).EntireRow.Delete
- 此范围基于上述 (1) 的初始自动过滤范围
.Offset(1)
- 将范围 1 行从第 3 行(第 4 行)向下移动.Resize(ur.Rows.Count - 4)
- 调整底部大小,向上 4 行 - 排除 3 个 hdrs 和 lastrow
注意:确定最后一行UsedRange
是经过深思熟虑的,以防最后一行为空且绿色
推荐阅读
- powershell - 运行 generate-vapid-keys --json web-push 时如何解决错误?
- android - ViewModel 中的 LiveData 类型不匹配
- angular - 从角度到后端的社交登录(laminas api 工具)
- ethereum - web3 encodeFunctionCall 不起作用(在 1 个事务中同时调用 2 个特定函数不起作用)
- javascript - SecurityError:无法在“HTMLCanvasElement”上执行“toBlob”:可能无法导出受污染的画布
- assembly - MIPS 从地址加载值
- python - 单个选项卡可显示多个不同的小部件面板选项
- angular - 具有 PKCE 流的 OKTA 授权授予托管在 Amazon S3 存储桶中的 Angular 应用程序静态网站的重定向问题
- javascript - javascript覆盖类变量
- python - Python Crypto.Cipher 库中的 AES-GCM 是否可以处理 AAD 部分