Excel精英培训网

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

[已解决]我的工作簿中每个表A列里含有7,有的含有多个,我想用函数将含有7的所有列都删除!但

[复制链接]
发表于 2012-5-18 13:09 | 显示全部楼层 |阅读模式
Sub test()
Application.DisplayAlerts = False '关闭提示
Application.ScreenUpdating = False '关闭屏幕更新,加快程序运行。
For k = 1 To Sheets.Count
Sheets(k).Select


For each i In ActiveSheet.Range("A:A")

If i.Value = "7" Then

Rows(i.Row).Delete

End If

Next i

Next k

End Sub
最佳答案
2012-5-18 13:39
这个可能要用倒循环,试试看下面这个
Sub test()
Application.DisplayAlerts = False '关闭提示
Application.ScreenUpdating = False '关闭屏幕更新,加快程序运行。
For k = 1 To Sheets.Count
Sheets(k).Select
for i=65536 to1 step -1
if cells(i,1)=7 then rows(i).delete
next i
next k
end sub
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2012-5-18 13:39 | 显示全部楼层    本楼为最佳答案   
这个可能要用倒循环,试试看下面这个
Sub test()
Application.DisplayAlerts = False '关闭提示
Application.ScreenUpdating = False '关闭屏幕更新,加快程序运行。
For k = 1 To Sheets.Count
Sheets(k).Select
for i=65536 to1 step -1
if cells(i,1)=7 then rows(i).delete
next i
next k
end sub
回复

使用道具 举报

发表于 2012-5-18 13:42 | 显示全部楼层
把其中的条件语句改成下面的试试:
  1. If InStr(i.Value, "7") > 0 Then
复制代码
回复

使用道具 举报

发表于 2012-5-18 13:57 | 显示全部楼层
本帖最后由 suntree 于 2012-5-18 14:01 编辑

  1. Sub test()
  2.     Application.DisplayAlerts = False '关闭提示
  3.     Application.ScreenUpdating = False '关闭屏幕更新,加快程序运行。
  4.     For k = 1 To Sheets.Count
  5.         Sheets("sheet" & k).Select
  6.         For i = [a65536].End(xlUp).Row To 1 step -1
  7.             For m = 1 To Len(Cells(i, 1))
  8.                 If Mid(Cells(i, 1), m, 1) = "7" Then
  9.                     Rows(Cells(i, 1).Row).Delete
  10.                 End If
  11.     Next m, i, k
  12.     Application.DisplayAlerts = True
  13.    Application.ScreenUpdating = True
  14. End Sub

复制代码


回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-14 23:07 , Processed in 0.281796 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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