EXCEL批量删除当前目录下所有工作薄的所有工作表的指定行

本文提供了一个VBA代码示例,用于在当前目录下批量删除所有匹配‘.xls*’后缀的工作薄中指定行(如6, 7, 9, 10, 12, 13, 15, 16行)。请注意,操作不可逆,务必备份数据。代码中禁止了警告提示,并通过FileSystemObject遍历文件进行操作。" 118482429,9031855,Python初学者的脚本重命名实践,"['Python', '编程经验', '脚本开发']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本代码示例用于批量删除第6, 7, 9, 10, 12, 13, 15, 16行的代码,使用这个批量删除行的代码要注意以下几点:
1)该代码只用于批量删除代码所在文件目录下(不含子目录)与 “*.xls*”后缀匹配的所有工作薄l所有工作表第6, 7, 9, 10, 12, 13, 15, 16行
2)该批量删除操作不可逆转,请注意备份
3)请确保每个工作薄的每个工作表删除的行都相同,且每个工作表只能执行一次,若执行多次会造成误删
Public Sub test()
On Error Resume Next
Dim arrNa(1 To 2000)
Dim fileNa, thisNa, sheetNum
Dim n, i, ii, iii
arrDel = [{6, 7, 9, 10, 12, 13, 15, 16}]
Application.DisplayAlerts = False
Set obj = CreateObject("scripting.FileSystemObject")
For Each fileNa In obj.GetFolder(ThisWorkbook.Path).Files
  If fileNa Like "*.xls*" Then
    n = n + 1: arrNa(n) = fileNa
  End If
Next
For i = 1 To n
    With CreateObject(arrNa(i))
    thisNa = .Name
    If thisNa = "批量删除当前目录下所有工作薄的所有工作表的指定行.xlsm" Then GoTo reg1
    sheetNum = .Worksheets.Count
    For ii = 1 To sheetNum
    With .Worksheets(ii)
          For iii = UBound(arrDel) To 1 Step -1
          .Rows(arrDel(iii)).EntireRow.Delete shift:=xlUp
          Next iii
    Windows(t

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值