locking文本框在工作表中移动和resize,只编辑文本Excel VBA

我在vba中创build一个TextBox,用户input一个值然后在表单中search它,就像你在这里看到的那样

在这里输入图像说明

我的问题是我想locking这个文本框移动,用户可以编辑框中的文本。 我正在尝试属性,并选中“locking”,并取消选中“locking文本”,然后保护表

Sub protect_TextBox() ActiveSheet.Protect UserInterFaceOnly:=True 'rest of my code... End Sub 

它locking我的TextBox移动和resize,用户只能编辑里面的文本

但它也locking了许多function,如过滤,格式化…基本上我可以只select单元格。

任何build议,请如何冻结仅文本框,并保持其余细胞不受保护?

非常感谢你。

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。 所以如果你不包含它们,那么对用户可以对单元格做什么的限制就会更多。