作者:乔山办公网日期:
返回目录:excel表格制作
用VBA解决。首先e5a48de588b67a64332将此表的宏安全性设置最低,ALT+F11打开VBA窗口,双击左边的SHEET1或THISWORKBOOK,添加代码,右键设置VBA工程属性,将工程保护用密码保护。代码实现所有的目标单元格只要不为空,就不能动。空的可以动。
代码如下:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
With Target
If .Value <> "" Then
dataN = .Value
MsgBox ("不能修改")
.Value = dataN
End If
End With
End Sub
不好意思,代码应该将目标单元格移开,防止使用右键等,我选择A1单元格。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
With Target
If .Value <> "" Then
dataN = .Value
MsgBox ("不能修改")
.Value = dataN
Cells(1, 1).Select
End If
End With
End Sub
VBA实际是独立的软zd件,只是看起来它是EXCEL一部分,VBA执行的是用户自定义的操作,内不是标准操作,属于二次开发,不在容EXCEL软件的缓存记录中。记住Microsoft Visual Basic(VBA)并不是EXCEL。
代码及百注释如下:
在VBE界面左上角度sheet3下面的ThisWorkbook中加入如知下代码——
Private Sub Workbook_Open()'选择事道件为工作表打开时触内发
Application.Visible = False'将Excel文件隐藏
UserForm1.Show'像是窗体容
End Sub
亲可以的, 我给你个思路吧,就是你可以把你要操作的那个sheet 让vba 自动复制一份到新的sheet 里面然后操作他就行了,不用改原来的数据的