Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 6992|回复: 6

[已解决]批量删除多个工作表的第G列到第L列~~~~~

[复制链接]
发表于 2013-7-21 11:58 | 显示全部楼层 |阅读模式
本帖最后由 cqj603 于 2013-8-30 18:52 编辑

VBA真是太神奇了!
最佳答案
2013-7-21 12:43
  1. Sub test()
  2.     Dim p$, f$, x, c As Range

  3.     Application.ScreenUpdating = False
  4.     Application.DisplayAlerts = False
  5.     p = ThisWorkbook.Path & "\file"
  6.     f = Dir(p & "*.xls")
  7.     x = "2011-2012-1"

  8.     Do While f <> ""
  9.         Workbooks.Open p & f
  10.         '''''''''''''''''''''''''''''''''''''''''''
  11.         With ActiveSheet
  12.             .Columns("g:L").Delete
  13.             .Rows(1).Delete
  14.             .Rows(.UsedRange.Rows.Count).Clear
  15.             Set c = .Cells.Find(x)
  16.             If Not c Is Nothing Then
  17.                 Do
  18.                     c.EntireRow.Delete
  19.                     Set c = .Cells.Find(x)
  20.                 Loop While Not c Is Nothing
  21.             End If
  22.         End With
  23.         '''''''''''''''''''''''''''''''''''''''''''
  24.         ActiveWorkbook.Close 1
  25.         f = Dir
  26.     Loop
  27.     MsgBox "完成"
  28. End Sub
复制代码
222.rar (14.38 KB, 下载次数: 121)
发表于 2013-7-21 12:16 | 显示全部楼层
2000多个得运行好一会吧{:3912:}
上传个附件吧,不要两千个,其中一个就可以
回复

使用道具 举报

 楼主| 发表于 2013-7-21 12:26 | 显示全部楼层
附件为样表,请高手赐教!

2.rar

4.06 KB, 下载次数: 30

回复

使用道具 举报

发表于 2013-7-21 12:42 | 显示全部楼层
你的表里面没有2011-2012-1它啊
能否一次性讲清楚了,你要写清楚一点,效果要达到随便从大街上拉一个来,一看都知道你要干什么.
回复

使用道具 举报

发表于 2013-7-21 12:43 | 显示全部楼层    本楼为最佳答案   
  1. Sub test()
  2.     Dim p$, f$, x, c As Range

  3.     Application.ScreenUpdating = False
  4.     Application.DisplayAlerts = False
  5.     p = ThisWorkbook.Path & "\file"
  6.     f = Dir(p & "*.xls")
  7.     x = "2011-2012-1"

  8.     Do While f <> ""
  9.         Workbooks.Open p & f
  10.         '''''''''''''''''''''''''''''''''''''''''''
  11.         With ActiveSheet
  12.             .Columns("g:L").Delete
  13.             .Rows(1).Delete
  14.             .Rows(.UsedRange.Rows.Count).Clear
  15.             Set c = .Cells.Find(x)
  16.             If Not c Is Nothing Then
  17.                 Do
  18.                     c.EntireRow.Delete
  19.                     Set c = .Cells.Find(x)
  20.                 Loop While Not c Is Nothing
  21.             End If
  22.         End With
  23.         '''''''''''''''''''''''''''''''''''''''''''
  24.         ActiveWorkbook.Close 1
  25.         f = Dir
  26.     Loop
  27.     MsgBox "完成"
  28. End Sub
复制代码
222.rar (14.38 KB, 下载次数: 121)
回复

使用道具 举报

发表于 2013-7-21 13:35 | 显示全部楼层
学习啊~!
回复

使用道具 举报

 楼主| 发表于 2013-7-21 21:25 | 显示全部楼层
爱疯 发表于 2013-7-21 12:43
没见附件中有"2011-2012-1"啊?
x = "2011-2012-1"
把代码中这句的颜色部分,改为查找内 ...

我想借这个机会学习一下VBA,目前还没有入门。样表是一个学生的考试成绩表,每个学期的那一行都需要删除,所以随便写了个“2011-2012学年第一学期”的简写,想通过高手的程序,自己读懂后,改为自己所需要的,十分感谢!

点评

没什么,我们都是从论坛中一点点学来的  发表于 2013-7-21 21:46
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-20 13:36 , Processed in 0.573864 second(s), 17 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表