excel vba功能 要求 输入后不能修改,点击按钮后清零

初学vba,想实现一个功能。
a1:a10,只能输入一次,输入后不能编辑(不是每个单元格都一定会输入)。自定义按钮button1,按下后a1:a10清零,可以重新输入。
以下是我想当然编的,无法执行。求指教。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target <> "" Then
Target.Locked = True
End If
End Sub
Private Sub CommandButton1_Click()
If Target <> "" Then
Target.Locked = False
End If
Range("a1:a10") = ""
End Sub

确实如 果果gxl684 所说
要学习VBA,最好的办法就是自己先把关键操作录制下宏
然后去理解并修改代码达到自己的要求。
所有操作都是各种小操作的集体。
通过录制宏,大部分操作都可以被录制下来。
部分操作如果用宏无法录制,那可以再上网找答案。
针对你这个问题,你需要解决的关键问题就是如何锁定一个单元格
在excel中可以通过“工具”菜单中的“保护”菜单的子菜单来锁定指定范围,
让指定范围不可编辑
你可以先将以下操作录制成宏
1、全选所有范围,然后按“设置单元格格式”,再点“锁定”,然后把“锁定”给删除
2、然后随便选择一个范围,在“设置单元格格式”中的“锁定”中将这个范围的“锁定”给选中
3、“工具”⇒“保护”⇒“保护工作表”⇒再选择一些允许操作的内容⇒确定
4、“工具”⇒“保护”⇒“撤消工作表保护”
上面1到4的录制结果中已经包含了你要实现的目的的主要操作。

然后就是你的某个单元格的编辑事件是写如下代码
先是判断目标被编辑的目标是不是A1:A10中
如果是目标,并且内容不为空
解除保护
循环A1:A10范围
将不为空的单元格的锁定给设置上去
将为空的单元格的锁定给删除
设置保护

然后是清除的按钮
去除保护,去除所有单元格的锁定,再将A1:A10的值删除即可
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-12-17
你想只输入一次,那就得用个静太变量来计算或用if判断是否有值,有值就不可以再输入,就只有一次了。本回答被网友采纳
第2个回答  2012-12-17
问题出在:第2个函数中的Target 没有该对象的定义。追问

能否麻烦稍作改正?有劳

第3个回答  2012-12-17
没有用过,你可以用录制宏的方式看一下追问

录制?。。。你开玩笑呢。

追答

死脑筋,我无语。。。。

相似回答