使工作表只能被VBA修改

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使工作表只能被VBA修改相关的知识,希望对你有一定的参考价值。

RT
VBA_应用于 Worksheet 对象的 Protect 方法

作者:tchimo 2010-01-28 11:30 星期四 晴
  应用于 Worksheet 对象的 Protect 方法编辑本段回目录Worksheet 对象的 Protect 方法的功能为保护工作表使其不至被修改。
  
  
  语法
  
  expression.Protect(Password, DrawingObjects, Contents, Scenarios, UserInterfaceOnly, AllowFormattingCells, AllowFormattingColumns, AllowFormattingRows, AllowInsertingColumns, AllowInsertingRows, AllowInsertingHyperlinks, AllowDeletingColumns, AllowDeletingRows, AllowSorting, AllowFiltering, AllowUsingPivotTables)
  
  UserInterfaceOnly Variant 类型,可选。如果为 True,则保护用户界面,但不保护宏。如果省略本参数,则保护既应用于宏也应用于用户界面。
  

自己解决了

参考技术A 菜单——》工具——》保护——》保护工作表

请问我怎么就不对了?还显然。。。。。
保护之后用户只能通过控件、自定义form、sheet事件等方式调用VBA修改数据,这不就是你要求的吗?要说我不对,不如说你问题没描述清楚!追问

你测试下就知道了,无法修改

参考技术B 这个代码供参考:------控制某一单元格不可编辑修改

Private Sub Workbook_Open()
ProtectSpecialRange ("A1")
End Sub

Sub ProtectSpecialRange(RangeAddress As String)
On Error Resume Next

With Sheet1
.Cells.Locked = False
.Range(RangeAddress).Locked = True
.Protection.AllowEditRanges.Add Title:="区域1", Range:=Range(RangeAddress) _
, Password:="pass"
.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End With

End Sub
参考技术C 深度隐藏一下,让visible的属性为2.然后在工程属性里面设置一个密码,这样一来就无法看到也不能修改。若使用的时候,只能通过VB工程中解除密码才可以使用,不知道是否帮到你追问

我想让用户只能看,不能改,有没有什么属性设置一下直接实现?

本回答被提问者采纳
参考技术D 2楼貌似有点道理

以上是关于使工作表只能被VBA修改的主要内容,如果未能解决你的问题,请参考以下文章

修改 VBA 使其在两个工作簿之间工作,而不是在两个工作表之间工作

VBA 锁定有内容的单元格

修改查找和替换的 VBA 代码以循环遍历多个工作表

保护 Excel 工作表 - 不可能?

vb6.0改Excel的工作表名

Excel VBA 用户定义函数:在工作表函数中获取单元格被调用