我已将文本框插入到行范围中。textbox的目的是允许更动态地形成输入文本,而不是只向单元格中输入文本。我希望文本框是可扩展的,这在文本框设置中很容易完成,并且相应的行与其一起展开并不容易。我在文本框下面有带有数据的单元格,当它扩展时,它将覆盖这些单元格。
我希望任何vba代码的帮助,允许行高度自动调整时,文本框高度调整。我已经在网上搜索过了,虽然我发现了一个类似的问题,但所给出的答案建议使用一个用户表单文本框,该文本框提供给一个单元格,但并不满足我的格式化需求。同样需要澄清的是,这是从Excel中的“插入”菜单中找到的文本框。
我想代码看起来应该是这样的:
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我不确定我是否朝着正确的方向前进,但希望这能概述我想要发生的事情。
发布于 2015-05-02 09:56:32
你不能像Mascaro先生提到的那样,以这种方式触发事件。若要将一行设置为形状的高度,请使用
Range("A1").RowHeight = sheet1.Shapes("name_of_shape").Height不需要单位转换。但是,请确保形状属性设置为“不要移动或使用单元格调整大小”
触发形状内文本更改的唯一方法是运行计时器事件,这可以通过几种方法来实现,尽管代码会很痛苦。另一个选项可能是用户确认文本更改的按钮,这可以在单击事件中触发,然后设置行高。
发布于 2015-09-24 14:32:36
我有同样的请求,并且刚刚找到了一个解决方案,它集成了@rayzinnz代码。
我有一个文本框,当输入更多的文本时,它向下调整大小。与文本行相关的行高应相应地调整大小,以保持工作表其余部分的顺序。
以下代码适用于我:
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这被放置在特定工作表的代码中。当用户停止键入并单击文本框外时,行高将被调整。
https://stackoverflow.com/questions/29994720
复制相似问题