六合开奖结果现场直播欢迎诸位!收藏本站注 册登 陆
常用三肖中特马:基础知识网络知识操作系统WPS网页制作数据库算法网页成功之路网络安全最新技术古典mid流行midmid背景下载中心
您现在的位置:首页 > 三肖中特马 > 文章页

如何让Excel空单元格只能输入一次数据

Admin | 2010-3-13 13:24:14 | ReadNums | 10649 | 标签 六合开奖结果现场直播 | 打印本页
     

  我们如何才能做到,在Excel工作薄的任何一张工作表里面,任意的一个单元格,只能输入一次数据。

  意思就是说,任何一个单元格,只能输入一次,即,空单元格允许输入第一次数据;非空单元格,不能删除不能修改数据。

  言归正传,下面是实现的方法,请您过目,希望对您有所帮助。

  一、实现的原理

  通过判断被选中的单元格,是否有内容;如果有,那么,当被修改成为其它数据时,会自动返回到原来的数据,以此达到不能修改的目的,同时,也不能删除原有的数据。

  如果被选择的单元格是空的,没有数据,那么,就允许输入。

  二、实现方法

  必须使用VBA程序代码来控制。

  为方便不懂VBA的网友学习,本文尽量耐心的讲。

  首先,如下图一样,

  在任何一个工作表名称上面,点击右键,在弹出的菜单中选择“查看代码”,这样,就进入到vba代码编写窗口了。

  接着,就能看到下图了。

  首先,我们在ThisWorkbook上点击右键,在弹出的快捷菜单中选择“查看代码”,弹出代码编写窗口,如下图!

  上图,就是功能代码了。

  照着输入就行了,因为是通用的代码,啥地方都不需要修改。

  为方便您的学习,下面将代码粘贴如下:

  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
  这三行代码写在通用处。

  另外的两段代码,照着写没问题!

  如果您看来看去还是学不会,那么就请联系站长,我会拿做好的源文件给您,由于本站空间小,因此,就不提供源文件的下载了。


问题未解决:在线咨询

网友评论

(访客)
内容实用原创,讲得很好。
20xx年x月x日
(站长)
有问题请在线咨询。
20xx年x月x日