锁定TextBox以在工作表中移动和调整大小,仅编辑文本Excel VBA

时间:2017-07-19 13:31:58

标签: excel vba excel-vba textbox

我在vba中创建一个TextBox,用户输入一个值然后在工作表中搜索它,如你所见

enter image description here

我的问题是我想锁定此TextBox,并且用户只需编辑框内的文本即可。我正在尝试使用属性并选中“已锁定”并取消选中“锁定文本”,然后保护工作表

Sub protect_TextBox()

ActiveSheet.Protect UserInterFaceOnly:=True
'rest of my code...

End Sub

它阻止我的TextBox移动和调整大小,用户只能编辑

中的文本

但它也锁定了许多功能,如过滤,格式化...基本上我只能选择单元格了。

有任何建议请问如何仅冻结TextBox并保持其余的单元格不受保护?

非常感谢你。

1 个答案:

答案 0 :(得分:1)

worksheet.protect方法有许多参数允许/禁止用户执行某些操作。如果未在worksheet.protect方法中指定,则大多数参数默认为禁止。请参阅此处以获取该方法所需参数的完整列表https://msdn.microsoft.com/en-us/vba/excel-vba/articles/worksheet-protect-method-excel

也许尝试这样的事情:

Sub protect_TextBox()

ActiveSheet.Protect UserInterFaceOnly:=True, AllowFormattingCells:=True, _
AllowSorting:=True, AllowFiltering:=True
'rest of my code...

End Sub

您可以在链接上看到其他参数,并包含您需要的任何内容。请记住,参数的默认值为false。因此,如果您不包含它们,则会对用户可以对单元格执行的操作进行更多限制。