Excel精英培训网

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

[已解决]删除相同位置数据(需修改)

[复制链接]
发表于 2016-4-6 17:52 | 显示全部楼层 |阅读模式
请修改并简化下面程序,使之可以实现批量删除。具体在附件中,批量删除无限个相同表格,相同位置的数据。同时要把红底框中的数据也要删除。

Sub 删除数据()
'
' 删除数据 Macro
'

'
    Range( _
        "B5:E5,G5:H5,K5:M5,D6:H6,L6:M6,C7:E7,J7:M7,F8:H8,L8:M8,K9,F10:K10,M10,B13:M15") _
        .Select
    Range("B13").Activate
    ActiveWindow.SmallScroll Down:=6
    Range( _
        "B5:E5,G5:H5,K5:M5,D6:H6,L6:M6,C7:E7,J7:M7,F8:H8,L8:M8,K9,F10:K10,M10,B13:M15,F16:G16,J16,M16" _
        ).Select
    Range("M16").Activate
    ActiveWindow.SmallScroll Down:=6
    Range( _
        "B5:E5,G5:H5,K5:M5,D6:H6,L6:M6,C7:E7,J7:M7,F8:H8,L8:M8,K9,F10:K10,M10,B13:M15,F16:G16,J16,M16,A18:G18,A19:G19" _
        ).Select
    Range("A19").Activate
    ActiveWindow.SmallScroll Down:=6
    Selection.ClearContents
    ActiveWindow.SmallScroll Down:=-30
End Sub

最佳答案
2016-4-6 18:29
本帖最后由 zjdh 于 2016-4-6 18:32 编辑

Sub 删除数据()
    Range("B5,G5,K5,D6,L6,C7,J7,F8,L8,K9,F9,F10,M9:M10,B13:M15,F16,J16,M16,A18:G19,A19") = ""
    With Range("A20:A" & Range("A65536").End(3).Row)
        Set c = .Find("姓  名")
        If Not c Is Nothing Then
            firstAddress = c.Address
            Do
                Range("A5:M19").Copy c
                Set c = .FindNext(c)
            Loop While Not c Is Nothing And c.Address <> firstAddress
        End If
    End With
End Sub

Book2.rar

13.21 KB, 下载次数: 16

 楼主| 发表于 2016-4-6 17:53 | 显示全部楼层
回复

使用道具 举报

发表于 2016-4-6 18:22 | 显示全部楼层
回复

使用道具 举报

发表于 2016-4-6 18:29 | 显示全部楼层    本楼为最佳答案   
本帖最后由 zjdh 于 2016-4-6 18:32 编辑

Sub 删除数据()
    Range("B5,G5,K5,D6,L6,C7,J7,F8,L8,K9,F9,F10,M9:M10,B13:M15,F16,J16,M16,A18:G19,A19") = ""
    With Range("A20:A" & Range("A65536").End(3).Row)
        Set c = .Find("姓  名")
        If Not c Is Nothing Then
            firstAddress = c.Address
            Do
                Range("A5:M19").Copy c
                Set c = .FindNext(c)
            Loop While Not c Is Nothing And c.Address <> firstAddress
        End If
    End With
End Sub

回复

使用道具 举报

发表于 2016-4-6 18:31 | 显示全部楼层
本帖最后由 zjdh 于 2016-4-6 18:34 编辑

Book2.rar (19.04 KB, 下载次数: 12)
回复

使用道具 举报

 楼主| 发表于 2016-4-6 19:34 | 显示全部楼层
zjdh  能解释一下语句吗?不胜感激。
Sub 删除数据()
    Range("B5,G5,K5,D6,L6,C7,J7,F8,L8,K9,F9,F10,M9:M10,B13:M15,F16,J16,M16,A18:G19,A19") = ""
    With Range("A20:A" & Range("A65536").End(3).Row)
        Set c = .Find("姓  名")
        If Not c Is Nothing Then
            firstAddress = c.Address
            Do
                Range("A5:M19").Copy c
                Set c = .FindNext(c)
            Loop While Not c Is Nothing And c.Address <> firstAddress
        End If
    End With
End Sub
回复

使用道具 举报

发表于 2016-4-7 08:03 | 显示全部楼层
Sub 删除数据()
    Range("B5,G5,K5,D6,L6,C7,J7,F8,L8,K9,F9,F10,M9:M10,B13:M15,F16,J16,M16,A18:G19,A19") = "" 清除内容
    With Range("A20:A" & Range("A65536").End(3).Row)    搜索范围A20至A列有数据的最后一行
        Set c = .Find("姓  名")           查找“姓名”所在单元
        If Not c Is Nothing Then          若找到
            firstAddress = c.Address      记录首地址,以防死循环
            Do
                Range("A5:M19").Copy c    用已清除内容的表格复制覆盖
                Set c = .FindNext(c)      查找下一个
            Loop While Not c Is Nothing And c.Address <> firstAddress   跳转直至找不到或不是首地址
        End If
    End With
End Sub
回复

使用道具 举报

 楼主| 发表于 2016-4-7 08:31 | 显示全部楼层
谢谢!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 20:01 , Processed in 0.321670 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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