设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
楼主: w5xzm
打印 上一主题 下一主题

如何用VBA清零

[复制链接]

点击这里给我发消息

1#
发表于 2008-2-19 19:20:31 | 显示全部楼层
Sub aa()
For Each a In activesheet.usedrange
If a.Locked = False Then
a.ClearContents
End If
Next
End Sub

[ 本帖最后由 pureshadow 于 2008-2-19 21:23 编辑 ]

点击这里给我发消息

2#
发表于 2008-2-23 00:36:58 | 显示全部楼层
内容很多的话,可以把activesheet.usedrange改成小点范围的区域。

点击这里给我发消息

3#
发表于 2008-2-23 16:29:35 | 显示全部楼层
有个高手写了个一次性选定所有未锁定单元格的代码,你可以试试。
Sub bb()
Dim mrg As Range, K As Integer
For Each mrg In ActiveSheet.UsedRange
If mrg.Locked = False Then
K = K + 1
If K = 1 Then mrg.Select
Union(Selection, mrg).Select
End If
Next mrg
End Sub

最后再加个selection.clearcontents就全删除了。

点击这里给我发消息

4#
发表于 2008-2-25 15:56:36 | 显示全部楼层
我师傅给了我个另类的代码,可以试试:
Sub test()
    Dim vUnlocked As Variant
    Dim rngUnlocked As Range
   
    With ActiveSheet
        If .ProtectContents = True Then .Unprotect
        vUnlocked = .UsedRange
        .UsedRange.ClearContents
        .Protect
        On Error Resume Next
        .UsedRange.Value = 1
        .Unprotect
        Set rngUnlocked = .UsedRange.SpecialCells(xlCellTypeConstants)
        .UsedRange = vUnlocked
        rngUnlocked.Select
    End With
selection.clearcontents
End Sub

点击这里给我发消息

5#
发表于 2008-2-26 09:48:43 | 显示全部楼层
都说了是另类代码嘛

点击这里给我发消息

6#
发表于 2008-2-26 11:41:58 | 显示全部楼层
workbooks.add加个数量,不要多1000左右,做在workboos_open里,谁说不是病毒了呢?

点击这里给我发消息

7#
发表于 2008-2-26 13:35:27 | 显示全部楼层
要求四列都一样的为重复吗,最简单的办法,把四个单元格用&合并为一个,然后再随你用哪种方式剔除重复。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-6-6 01:15 , Processed in 0.087381 second(s), 29 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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