Excel:对象文本框不能在受保护与未受保护的工作表状态(w / Text Unlocked)中执行回车换行…为什么?
首先,我的尽职调查收集了大量有关ActiveX文本框的答案,但没有涉及对象文本框。 对于我的项目,我不能使用任何ActiveX。
OK,所以当工作表是不受保护的,一个对象文本框(来自插入>形状)以我想要的方式工作:最重要的是我可以按Enter键并返回一个回车符。 然后,我进入形状属性,并取消locking文本,并保护表。
一旦表格被保护,虽然,回车的能力(inputEnter,然后往下走一行)就会消失。 Shift + Enter和Alt + Enter也不行。
这个function是否可用? 有没有解决办法? 为什么Excel恨我? 以下是我的一些想法:
- 当文本框被点击/激活时取消保护表单,不保留(不能找出VBA的语法“如果相交…”是我在想什么)
- 插入Word Doc对象(不要这样,因为一键进入公式栏编辑,我不能让字体留下来)
- 只需使用合并的单元格并指示用户双击以input并使用Alt + Enter作为新行。
目前获胜的select是使用合并单元格,但我可能只需要看看ActiveX是否可以在我们的networking上运行。 我真的想在这里坚持KISS的原则,如果可能的话,terminal用户…我不介意在后端编码,使其工作,虽然。
谢谢你的想法!
编辑:这是一些图像来帮助…
以下是当我的工作表受到保护时,我想要的function:
接下来,这是显示属性窗口的ActiveX文本框(Developer> Design Mode> Properties)。 当工作表受到保护时,使其有些可用的属性以红圈,多行和回车键行为圈起来。 但是,我更喜欢不必使用ActiveX …另外,用户不能逐行更改字体颜色。
最后,我发现这很有趣:在“表单控件”下面还有一个“灰色”的文本框。 从search,它看起来像是拿走了文本框的绘图对象版本…或者也许是相同的? 左边是绘图对象一个,中间是灰色的表单控件,右边是ActiveX。
总之,我只想看看在工作表受到保护时是否有一种方法来获得不受保护的工作表的形状文本框的function。
假设您正在使用从function区插入的TextBox 形状 ,请在此处:
然后,您可以使用Protect
方法中的可选参数:
Sheet1.Protect DrawingObjects:=False
这将允许用户编辑工作表上的文本框,但工作表本身将保持保护。
如果您正在使用Form Control(从Develper / Design Ribbon插入),则可以通过访问形状的OLEFormat.Object
来设置.MultiLine
属性:
Sub test() Dim tb As Shape Dim x As Object 'Get a handle on the SHAPE Set tb = ActiveSheet.Shapes(2) 'You have to access its properties from the OLEFormat.Object: tb.OLEFormat.Object.Object.MultiLine = True End Sub
在我的testing中,即使在受保护的工作表上,这也允许用户使用Shift + Enter来插入回车:
Ctrl + Shift + Enter似乎在受保护的工作表上工作。