Excel精英培训网

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

[已解决]求教这个宏效果的制作方法和步骤

[复制链接]
发表于 2011-9-18 03:35 | 显示全部楼层 |阅读模式
请看附件,cfyhqy做的,VBA高手有请! 当某列满足某条件时锁定前面所有单元格.rar (8.69 KB, 下载次数: 45)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2011-9-18 08:06 | 显示全部楼层
我也是菜鸟。。没学过V
    If Cells(i, 1) > 0 Then
    Worksheets("sheet1").Unprotect Password:=""
    Range(Cells(i, 1), Cells(i, 1)).Locked = True
    Workshe
我看这个。。如果A列 有单元格>0   则这个单元格就被锁定 而且加密 密码为空

回复

使用道具 举报

发表于 2011-9-18 10:49 | 显示全部楼层    本楼为最佳答案   
本帖最后由 zjdh 于 2011-9-18 10:58 编辑

看一下宏不是都明白了吗?
1. 将A列的锁定去除
2. 复制宏到sheet1的chang事件中.
其实你那宏可以大大的简化一下:
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2. Dim I&
  3. Application.EnableEvents = False
  4. For I = 1 To Target.Row
  5.     If Cells(I, 1) > 0 Then
  6.     Unprotect Password:=""
  7.     Range(Cells(1, 1), Cells(I, 1)).Locked = True
  8.     Protect Password:=""
  9.     End If
  10. Next
  11. Application.EnableEvents = True
  12. End Sub
复制代码
回复

使用道具 举报

发表于 2011-9-18 19:46 | 显示全部楼层
慢慢来卡店
回复

使用道具 举报

 楼主| 发表于 2011-9-20 00:05 | 显示全部楼层
回复 zjdh 的帖子

{:15:}你的简化代码试了下,效果是:只要输入任意一个单元格,其它任意位置的单元格便都被锁住不能再输入,这需要改进。需要的效果是:输完一个单元格,它之前的已输入的单元格便被冻结不能再输入、修改,而其后的单元格可正常输入不受影响。
回复

使用道具 举报

发表于 2011-9-20 07:53 | 显示全部楼层
晕!!,你不是要求:
"当某列满足某条件时锁定前面所有单元格 "
你原来的宏就是这功能啊,我只是帮你简化完善一下。

回复

使用道具 举报

 楼主| 发表于 2011-9-20 23:55 | 显示全部楼层
很感谢你热心提供简化代码!但它确实有缺陷,因为它只要任意输入一个单元格后,其它所有单元格即被锁定,哪需要满足什么条件?!我提供的那个只锁前,不锁后。我对简化版有好奇,要是你能改进,我再提问,评你最佳。谢啦……
回复

使用道具 举报

 楼主| 发表于 2011-9-20 23:59 | 显示全部楼层
回复 zjdh 的帖子

很感谢你热心提供简化代码!但它确实有缺陷,因为它只要任意输入一个单元格后,其它所有单元格即被锁定,哪需要满足什么条件?!我提供的那个只锁前,不锁后。我对简化版有好奇,要是你能改进,我再提问,评你最佳。谢啦……
回复

使用道具 举报

发表于 2011-9-21 07:57 | 显示全部楼层
要达到你的要求并不难,宏已修改,无论哪一列都有效,输入一个锁定一个。
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2.     Dim I&
  3.     Application.EnableEvents = False
  4.     Unprotect Password:=""
  5.     Cells.Locked = False
  6.     C = Target.Column
  7.     For I = 1 To Target.Row
  8.         If Cells(I, C) > 0 Then
  9.             Cells(I, C).Locked = True
  10.         End If
  11.     Next
  12.     Protect Password:=""
  13.     Application.EnableEvents = True
  14. End Sub
复制代码
回复

使用道具 举报

发表于 2011-9-21 08:40 | 显示全部楼层
学习了            
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 20:31 , Processed in 0.370793 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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