自动调整行高以匹配可扩展文本框

我已经将一个文本框插入一个行范围。 文本框的目的是为了允许input文本更加dynamic的格式化,而不仅仅是将文本input到单元格中。 我希望文本框是可扩展的,这在文本框设置中很容易完成,并且相应的行随它一起展开,这并不那么容易。 我在文本框下面有数据单元格,当它展开时它覆盖了这些单元格。

我将不胜感激与vba代码,将允许行高度自动调整文本框高度调整的任何协助。 我在网上search,虽然我发现1类似的问题,但给出的答案build议使用用户表单文本框,饲料到一个单元格,但不符合我的格式化需求。 还要清楚,这是从Excel中的插入菜单中find的文本框。

我想代码看起来像这样:

On change event (linked to textbox #)'not sure if this is possible dim x as long, commentcell_rng as range set commentcell_rng as thisworkbook.sheets("Sheet1").range("A81:N81") x = textbox # height 'Not sure how to return textbox height also I don't know if text box height matches cell height unit of measure commentcell_rng.entirerow.height = x 

我不知道我是否正确的方向,但希望这概述了我想要发生的事情。

正如马斯卡罗先生所提到的,你无法触发事态的发展。 将行设置为形状使用的高度

 Range("A1").RowHeight = sheet1.Shapes("name_of_shape").Height 

没有单位转换需要。 但是,请确保形状属性设置为“不要移动或使用单元格大小”
触发对形状内文本进行更改的唯一方法是运行一个计时器事件,这可能通过一些方法来实现,尽pipe编码很麻烦。 另一个选项可能是用户确认文本更改的button,可以在单击事件中触发,然后设置行高。

我有同样的要求,刚刚find了一个解决scheme,它包含了@rayzinnz代码片段。

我有一个文本框,当input更多文本时向下resize。 与文本行相关的行高度应相应resize,以便在表格的其余部分保持顺序。

下面的代码为我工作:

 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Cells.Count = 1 And IsEmpty(Target) Or Not IsEmpty(Target)Then Range("A9").RowHeight = ActiveSheet.Shapes("Scope_IL_Definition_TB").Height End If End Sub 

这是放在特定的工作表的代码。 当用户停止input并在文本框外单击时,行高就会被调整。