设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 5063|回复: 16
打印 上一主题 下一主题

如何用VBA清零

[复制链接]
跳转到指定楼层
1#
发表于 2008-2-18 14:59:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我的工作表要反复使用,又不想老用复制工作簿
里面有很多分散的单元格要填数字,
每用一次都要清除上一次填下的数字
请教高手,有没有方法用VBA实现查找未锁定的单元格,并将其清零??

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅

点击这里给我发消息

2#
发表于 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 编辑 ]
3#
 楼主| 发表于 2008-2-22 23:22:17 | 只看该作者

thankyou pureshadow
I'try................
4#
 楼主| 发表于 2008-2-23 00:08:01 | 只看该作者

虽然可以但速度太慢.............

点击这里给我发消息

5#
发表于 2008-2-23 00:36:58 | 只看该作者
内容很多的话,可以把activesheet.usedrange改成小点范围的区域。
6#
 楼主| 发表于 2008-2-23 13:37:44 | 只看该作者
谢谢版主
每一张表的内容也多,
而且工作簿有近十张表
................
有没有直接让电脑清除整个工作簿中未锁定的单元格内容的语句,而不用条件??

看过妖的QQ空间~~~~~有很多可学的东东啊....................

点击这里给我发消息

7#
发表于 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就全删除了。
8#
 楼主| 发表于 2008-2-23 17:20:32 | 只看该作者

不错不错...
虽然速度还是稍显不足
不过已经是可以接受啦~~~~
谢谢小妖~~~~~~~~

点击这里给我发消息

9#
发表于 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
10#
 楼主| 发表于 2008-2-26 08:04:06 | 只看该作者
实在是高

Sub test()
    Dim vUnlocked As Variant
    Dim rngUnlocked As Range
   
    With ActiveSheet
        .Unprotect Password:="abcd"   '<<<<这好象要加入解保护??
        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
        .Protect Password:="abcd"       '<<<< 这好象要加入加保护???
    End With
Selection.ClearContents
End Sub


运行之后所有的公式失去功能
还请改进

[ 本帖最后由 w5xzm 于 2008-2-26 08:29 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-26 01:55 , Processed in 0.095412 second(s), 33 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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