EXCEL的每个单元格实现一次输入后就无法再更改

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EXCEL的每个单元格实现一次输入后就无法再更改相关的知识,希望对你有一定的参考价值。

就是要求输入者认真填写数据,在每一个单元格内输入数据时,一旦按下回车即不能再修改或删除本单元格数据了。需求VBA代码。如果需要修改整个工作薄中的数据时最好输入密码。(说明:并不是指每修改一个单元格内容就要求输一次密码,意思是输入一次密码可以修改整个工作薄及表内容及数据)。
1、因为VBA代码需要启用宏,所以要求强制启用宏,而不需要设置宏的等级与不能出现提示是否启用。
2、想修改VBA代码时加一个密码。不然别人一右击查看代码就可以删除了。
3、添加一个即时保存代码,让其输入的数据即时保存。
4、看了MEIFEGHDPIG - 七级 提供的代码不错,能否修正一下把TT和PP加入到菜单栏中。

按下回车后不能修改在excel里是不能实现的
但是某些单元格不能修改可以实现,具体操作内容如下:
一、选定不能修改的单元格
二、单击工具,保护,保护工作表
三、勾选“选定锁定单元格”和“选定未锁定的单元格”,并设置密码,单击确定
四、设置保存后生效
希望您对我的答案满意,谢谢。
参考技术A 简单,不为空的单元格不允许选中。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target <> "" Then Cells(Target.Row + 1, 1).Select
End Sub

若需修改表格,删掉宏即可。
参考技术B 基础代码参考楼上的

下面这些代码需要粘贴在目标工作表中(右键该工作表标签,查看代码,在空白的代码框内粘贴即可)
需要修改时,可运行tt,设置为不能修改时,运行pp

Public bl As Boolean

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If bl = False Then
If Target <> "" Then
Cells(Target.Row + 1, Target.Column).Select
Else
Exit Sub
End If
Else
Exit Sub
End If
End Sub

Sub tt()
If InputBox("密码") = "ABCDEFG" Then
bl = True
Else
MsgBox "密码错误,不能修改"
End If
End Sub

Sub pp()
bl = False
End Sub

下面的这个代码,打开Thisworkbook的代码窗口粘贴进去,然后保存退出,然后再进入工作表时。就可以实现所有代码了
Private Sub Workbook_Open()
bl = False
End Sub

这些代码的含义是,当打开工作表时,得到一个全局变量为False。当这个变量为False时,工作表不允许修改含有数据的单元格。当输入一个密码时,可以修改全局变量为True。当这个变量为True时,就可以修改工作表内的数据了。

修改完成后,运行pp,重新设置这个全局变量为False即可/本回答被提问者采纳

以上是关于EXCEL的每个单元格实现一次输入后就无法再更改的主要内容,如果未能解决你的问题,请参考以下文章

Excel想实现在一个单元格内输入数字,另一个单元格累加?

WPS中Excel的问题

excel无法更改单元格格式

怎样在excel单元格里让本来有的数字和新输入的数字自动相加?

excel每个单元格多行内加入相同的内容?

vba excel 去掉单元格中隐藏着的双引号或单引号 (多列含有,希望得到一次性清楚)