excel工作表中有vba,也有公式,怎么才能保护公式(也就是公式不被修改)而不影响vba的效果。注意:我已试过在工具-保护-保护工作表中试过,在此加密后vba就不能用提示错误,我也试过选中单元格右键-存储格式-锁定/隐藏,都不行,所以回答都请仔细看清楚,请直接写出代码并告诉我在哪里添加,可以加我QQ187371824我发具体表格
你可能VBA宏中带有写出到你的保护格子的动作,在VBA中要动这点保护格子,要先解除保护等宏运行完后再恢复保护。
可以在帮助中参考 Worksheet.Protect 方法 和 Range.Previous 属性
Excel 开发人员参考Worksheet.Protect 方法
保护工作表使其不能被修改。
语法
表达式.Protect(Password,
DrawingObjects, Contents, Scenarios,
UserInterfaceOnly, AllowFormattingCells,
AllowFormattingColumns, AllowFormattingRows,
AllowInsertingColumns, AllowInsertingRows,
AllowInsertingHyperlinks, AllowDeletingColumns,
AllowDeletingRows, AllowSorting, AllowFiltering,
AllowUsingPivotTables)
表达式 一个代表 Worksheet 对象的变量。
参数
名称必选/可选数据类型描述Password可选Variant一个字符串,该字符串为工作表或工作簿指定区分大小写的密码。如果省略此参数,不用密码就可以取消对工作表或工作簿的保护。否则,必须指定密码才能取消对工作表或工作簿的保护。如果忘记了密码,就无法取消对工作表或工作簿的保护。DrawingObjects可选Variant如果为 True,则保护形状。默认值是 True。Contents可选Variant如果为
True,则保护内容。对于图表,这样会保护整个图表。对于工作表,这样会保护锁定的单元格。默认值是 True。Scenarios可选Variant如果为 True,则保护方案。此参数仅对工作表有效。默认值是
True。UserInterfaceOnly可选Variant如果为
True,则保护用户界面,但不保护宏。如果省略此参数,则既保护宏也保护用户界面。AllowFormattingCells可选Variant如果为 True,则允许用户为受保护的工作表上的任意单元格设置格式。默认值是
False。AllowFormattingColumns可选Variant如果为 True,则允许用户为受保护的工作表上的任意列设置格式。默认值是
False。AllowFormattingRows可选Variant如果为 True,则允许用户为受保护的工作表上的任意行设置格式。默认值是
False。AllowInsertingColumns可选Variant如果为 True,则允许用户在受保护的工作表上插入列。默认值是
False。AllowInsertingRows可选Variant如果为 True,则允许用户在受保护的工作表上插入行。默认值是
False。AllowInsertingHyperlinks可选Variant如果为 True,则允许用户在受保护的工作表中插入超链接。默认值是
False。AllowDeletingColumns可选Variant如果为 True,则允许用户在受保护的工作表上删除列,要删除的列中的每个单元格都被解除锁定。默认值是
False。AllowDeletingRows可选Variant如果为 True,则允许用户在受保护的工作表上删除行,要删除的行中的每个单元格都被解除锁定。默认值是
False。AllowSorting可选Variant如果为
True,则允许用户在受保护的工作表上进行排序。排序区域中的每个单元格必须是解除锁定的或取消保护的。默认值是
False。AllowFiltering可选Variant如果为
True,则允许用户在受保护的工作表上设置筛选。用户可以更改筛选条件,但是不能启用或禁用自动筛选功能。用户也可以在已有的自动筛选功能上设置筛选。默认值是
False。AllowUsingPivotTables可选Variant如果为 True,则允许用户在受保护的工作表上使用数据透视表。默认值是
False。
说明
如果对工作表应用 Protect 方法时,将 UserInterfaceOnly 参数设为
True,然后又保存了工作簿,那么再次打开工作簿时,整张工作表将被完全保护,而并非仅仅保护用户界面。要在打开工作簿后重新启用用户界面保护,必须再次将
UserInterfaceOnly 参数设为 True 并应用 Protect 方法。
要在受保护的工作表上做更改,如果提供密码,则可在受保护的工作表上使用 Protect 方法。另一种方法是:取消工作表保护,对工作表做一些必要的更改,然后再次保护工作表。
注释“取消保护”的意思是单元格可以被锁定(“设置单元格格式”对话框),但在“允许用户编辑区域”对话框中定义的单元格区域内,并且用户已通过密码取消了对单元格区域的保护或已通过 NT 权限的验证。
Excel 开发人员参考Range.Previous 属性
返回一个代表下一个单元格的 Range 对象。
语法
表达式.Previous
表达式 一个代表 Range 对象的变量。
说明
如果指定对象为区域,则此属性的作用是仿效 Shift+Tab;但此属性只是返回上一单元格,并不选定它。
在保护工作表上,该属性返回上一个未锁定的单元格。在未保护的工作表上,该属性通常返回指定单元格左侧相邻的单元格。
示例
此示例选定 sheet1 中上一个未锁定单元格。如果 sheet1 未保护,选定的单元格将是紧靠活动单元格左边的单元格。
Visual Basic for ApplicationsWorksheets("Sheet1").ActivateActiveCell.Previous.Select
可以在帮助中参考 Worksheet.Protect 方法 和 Range.Previous 属性
Excel 开发人员参考Worksheet.Protect 方法
保护工作表使其不能被修改。
语法
表达式.Protect(Password,
DrawingObjects, Contents, Scenarios,
UserInterfaceOnly, AllowFormattingCells,
AllowFormattingColumns, AllowFormattingRows,
AllowInsertingColumns, AllowInsertingRows,
AllowInsertingHyperlinks, AllowDeletingColumns,
AllowDeletingRows, AllowSorting, AllowFiltering,
AllowUsingPivotTables)
表达式 一个代表 Worksheet 对象的变量。
参数
名称必选/可选数据类型描述Password可选Variant一个字符串,该字符串为工作表或工作簿指定区分大小写的密码。如果省略此参数,不用密码就可以取消对工作表或工作簿的保护。否则,必须指定密码才能取消对工作表或工作簿的保护。如果忘记了密码,就无法取消对工作表或工作簿的保护。DrawingObjects可选Variant如果为 True,则保护形状。默认值是 True。Contents可选Variant如果为
True,则保护内容。对于图表,这样会保护整个图表。对于工作表,这样会保护锁定的单元格。默认值是 True。Scenarios可选Variant如果为 True,则保护方案。此参数仅对工作表有效。默认值是
True。UserInterfaceOnly可选Variant如果为
True,则保护用户界面,但不保护宏。如果省略此参数,则既保护宏也保护用户界面。AllowFormattingCells可选Variant如果为 True,则允许用户为受保护的工作表上的任意单元格设置格式。默认值是
False。AllowFormattingColumns可选Variant如果为 True,则允许用户为受保护的工作表上的任意列设置格式。默认值是
False。AllowFormattingRows可选Variant如果为 True,则允许用户为受保护的工作表上的任意行设置格式。默认值是
False。AllowInsertingColumns可选Variant如果为 True,则允许用户在受保护的工作表上插入列。默认值是
False。AllowInsertingRows可选Variant如果为 True,则允许用户在受保护的工作表上插入行。默认值是
False。AllowInsertingHyperlinks可选Variant如果为 True,则允许用户在受保护的工作表中插入超链接。默认值是
False。AllowDeletingColumns可选Variant如果为 True,则允许用户在受保护的工作表上删除列,要删除的列中的每个单元格都被解除锁定。默认值是
False。AllowDeletingRows可选Variant如果为 True,则允许用户在受保护的工作表上删除行,要删除的行中的每个单元格都被解除锁定。默认值是
False。AllowSorting可选Variant如果为
True,则允许用户在受保护的工作表上进行排序。排序区域中的每个单元格必须是解除锁定的或取消保护的。默认值是
False。AllowFiltering可选Variant如果为
True,则允许用户在受保护的工作表上设置筛选。用户可以更改筛选条件,但是不能启用或禁用自动筛选功能。用户也可以在已有的自动筛选功能上设置筛选。默认值是
False。AllowUsingPivotTables可选Variant如果为 True,则允许用户在受保护的工作表上使用数据透视表。默认值是
False。
说明
如果对工作表应用 Protect 方法时,将 UserInterfaceOnly 参数设为
True,然后又保存了工作簿,那么再次打开工作簿时,整张工作表将被完全保护,而并非仅仅保护用户界面。要在打开工作簿后重新启用用户界面保护,必须再次将
UserInterfaceOnly 参数设为 True 并应用 Protect 方法。
要在受保护的工作表上做更改,如果提供密码,则可在受保护的工作表上使用 Protect 方法。另一种方法是:取消工作表保护,对工作表做一些必要的更改,然后再次保护工作表。
注释“取消保护”的意思是单元格可以被锁定(“设置单元格格式”对话框),但在“允许用户编辑区域”对话框中定义的单元格区域内,并且用户已通过密码取消了对单元格区域的保护或已通过 NT 权限的验证。
Excel 开发人员参考Range.Previous 属性
返回一个代表下一个单元格的 Range 对象。
语法
表达式.Previous
表达式 一个代表 Range 对象的变量。
说明
如果指定对象为区域,则此属性的作用是仿效 Shift+Tab;但此属性只是返回上一单元格,并不选定它。
在保护工作表上,该属性返回上一个未锁定的单元格。在未保护的工作表上,该属性通常返回指定单元格左侧相邻的单元格。
示例
此示例选定 sheet1 中上一个未锁定单元格。如果 sheet1 未保护,选定的单元格将是紧靠活动单元格左边的单元格。
Visual Basic for ApplicationsWorksheets("Sheet1").ActivateActiveCell.Previous.Select
温馨提示:答案为网友推荐,仅供参考