Excel文本框VBA的定制设计
我想知道我们是否可以创建自定义外观的文本框,作为输入框并链接到VBA 据我所知,标准过程需要添加一个ActiveX Textbox控件,然后使用Excel文本框VBA的定制设计,vba,excel,Vba,Excel,我想知道我们是否可以创建自定义外观的文本框,作为输入框并链接到VBA 据我所知,标准过程需要添加一个ActiveX Textbox控件,然后使用TextBox1\u Change事件添加代码,说明当用户在中输入内容时需要执行哪些操作 遗憾的是,默认文本框的外观与我希望电子表格的外观不匹配。那么,有没有什么方法可以改变它的外观,或者在达到同样的目的的同时让其他东西来代替它呢 我可以想到并尝试的一件事是插入一个形状(蓝色): 我可以通过以下方式使用VBA获取形状中的文本: InputText =
TextBox1\u Change
事件添加代码,说明当用户在中输入内容时需要执行哪些操作
遗憾的是,默认文本框的外观与我希望电子表格的外观不匹配。那么,有没有什么方法可以改变它的外观,或者在达到同样的目的的同时让其他东西来代替它呢
我可以想到并尝试的一件事是插入一个形状(蓝色):
我可以通过以下方式使用VBA获取形状中的文本:
InputText = Shapes("Rounded Rectangle 1").TextFrame.Characters.Text
但我不认为有一种方法可以检测形状变化的文本事件
欢迎提出建议/解决办法
谢谢在ActiveX文本框上可以更改的内容有一些限制,例如字体/颜色/边框/特殊效果,但是基本矩形形状不能更改 但是,您可以通过BackStyle属性使文本框透明,并将其分组为一个形状(向前移动TB),并且仍然使用
TextBox1\u Change
方法进行更改
如果您需要在其他地方访问文本框中的值,一种快速的方法是使用TextBox1.LinkedCell
及以下命令将值设置为单元格或命名范围
Private Sub TextBox1_Change()
' Same Sheet as TextBox1
ActiveSheet.Range(TextBox1.LinkedCell).Value = TextBox1.Value
' Or Below for Named Range
ThisWorkbook.Names(TextBox1.LinkedCell).RefersToRange.Value = TextBox1.Value
End Sub