如何让Excel空单元格只能输入一次数据
1、一、实现的原理
通过判断被选中的单元格,是否有内容;如果有,那么,当被修改成为其它数据时,会自动返回到原来的数据,以此达到不能修改的目的,同时,也不能删除原有的数据。
如果被选择的单元格是空的,没有数据,那么,就允许输入。
二、实现方法
必须使用VBA程序代码来控制。
为方便不懂VBA的网友学习,本文尽量耐心的讲。
首先,如下图一样,
2、在任何一个工作表名称上面,点击右键,在弹出的菜单中选择“查看代码”,这样,就进入到vba代码编写窗口了。
接着,就能看到下图了。
3、首先,我们在ThisWorkbook上点击右键,在弹出的快捷菜单中选择“查看代码”,弹出代码编写窗口,如下图!
4、上图,就是功能代码了。
照着输入就行了,因为是通用的代码,啥地方都不需要修改。
为方便您的学习,下面将代码粘贴如下:
Dim MyRow As Integer Dim MyColumn As Integer Dim MyOldValue As String Dim MyNewValue As String Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) MyRow = Target.Row MyColumn = Target.Column MyOldValue = Cells(MyRow, MyColumn).Value End Sub Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) MyRow = Target.Row MyColumn = Target.Column MyNewValue = Cells(MyRow, MyColumn).Value If (Trim(MyOldValue) <> "") Then Cells(MyRow, MyColumn).Value = MyOldValue Else Cells(MyRow, MyColumn).Value = MyNewValue End If End Sub
三、代码说明
Dim MyRow As Integer Dim MyColumn As Integer Dim MyOldValue As String Dim MyNewValue As String 这三行代码写在通用处。
另外的两段代码,照着写没问题!