Excel精英培训网

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

VBA一次选定所有未锁定单元格

[复制链接]
发表于 2008-2-19 17:27 | 显示全部楼层 |阅读模式
本帖最后由 爱疯 于 2013-4-1 22:42 编辑 <br /><br /><P>题目: 一工作表中有若干个区域取消了单元格锁定.</P>
<P>要求:&nbsp; 用VBA代码一次性选取所有未锁定单元格区域.</P>
<P>最简代码奖励10个金币</P>
<DIV align=right><FONT color=#000066>[此贴子已经被作者于2008-2-19 22:12:21编辑过]</FONT></DIV>
发表于 2008-2-19 17:36 | 显示全部楼层
回复

使用道具 举报

发表于 2008-2-19 18:00 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2008-2-19 18:52 | 显示全部楼层

顶一下,等答案
回复

使用道具 举报

发表于 2008-2-19 19:07 | 显示全部楼层

<p>我就不凑这个热闹了哈</p>[em01][em01][em01]
回复

使用道具 举报

发表于 2008-2-19 20:14 | 显示全部楼层

<p>不知道是不是最简,总之运行起来是非常的慢……</p><p>Sub 选择()<br/>Dim a As Range, b As Range<br/>For Each a In Range("A1:AI65536")<br/>If a.Locked = True Then<br/>&nbsp;&nbsp;&nbsp; GoTo 100<br/>&nbsp;&nbsp;&nbsp; Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If b Is Nothing Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set b = a<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set b = Union(b, a)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>End If<br/>100:<br/>Next<br/>b.Select<br/>End Sub</p>
回复

使用道具 举报

 楼主| 发表于 2008-2-19 20:16 | 显示全部楼层

<div class="msgheader">QUOTE:</div><div class="msgborder"><b>以下是引用<i>suye1010</i>在2008-2-19 20:14:00的发言:</b><br/><p>不知道是不是最简,总之运行起来是非常的慢……</p><p>Sub 选择()<br/>Dim a As Range, b As Range<br/>For Each a In Range("A1:AI65536")<br/>If a.Locked = True Then<br/>&nbsp;&nbsp;&nbsp; GoTo 100<br/>&nbsp;&nbsp;&nbsp; Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If b Is Nothing Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set b = a<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set b = Union(b, a)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>End If<br/>100:<br/>Next<br/>b.Select<br/>End Sub</p></div><p>要把电脑累死了,呵呵, 如何表示一个工作表中已使用的单元格区域呢?</p>
回复

使用道具 举报

发表于 2008-2-19 20:18 | 显示全部楼层

学习
回复

使用道具 举报

发表于 2008-2-19 20:28 | 显示全部楼层

<div class="msgheader">QUOTE:</div><div class="msgborder"><p>Sub 选择()<br/>Dim a As Range, b As Range<br/>For Each a In <font color="#f76809">activesheet.usedrange</font><br/>If a.Locked = True Then<br/>&nbsp;&nbsp;&nbsp; GoTo 100<br/>&nbsp;&nbsp;&nbsp; Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If b Is Nothing Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set b = a<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set b = Union(b, a)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>End If<br/>100:<br/>Next<br/>b.Select<br/>End Sub</p></div><p></p>
[此贴子已经被作者于2008-2-19 20:30:12编辑过]
回复

使用道具 举报

 楼主| 发表于 2008-2-19 20:33 | 显示全部楼层

<div class="msgheader">QUOTE:</div><div class="msgborder"><b>以下是引用<i>suye1010</i>在2008-2-19 20:28:00的发言:</b><br/><div class="msgheader">QUOTE:</div><div class="msgborder"><p>Sub 选择()<br/>Dim a As Range, b As Range<br/>For Each a In <font color="#f76809">activesheet.usedrange</font><br/>If a.Locked = True Then<br/>&nbsp;&nbsp;&nbsp; GoTo 100<br/>&nbsp;&nbsp;&nbsp; Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If b Is Nothing Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set b = a<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set b = Union(b, a)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>End If<br/>100:<br/>Next<br/>b.Select<br/>End Sub</p></div><p></p><br/></div><p></p><p>很不错了</p><p>我的代码不算开头和结尾语句, 共8行代码.</p><p>给3个币币鼓励一下,继续努力</p>[em01]
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-18 16:18 , Processed in 0.258321 second(s), 4 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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