excel - 当文本长度溢出用户表单文本框时触发事件

标签 excel vba scrollbar userform

我有一个带有TextBox(以及其他控件)的UserFormMultiLineWordWrap 已启用。当我在 TextBox 中输入文本时,该行会在该行的右端换行,并继续这样做,直到 TextBox 已满,此时会出现一个垂直滚动条出现。所有这些都是正常的并且有效。

我希望检测盒子何时已满,以便我可以触发宏。

我想对文本框使用“更改”事件来检查垂直滚动条是否处于事件状态,但我找不到方法来检测滚动条是否可见。如果我能检测到这一点,我就可以使用滚动条的激活来实现所需的最终目标。

最佳答案

我假设文本框的高度是稳定的,您不需要更改它。
那么你可以尝试以下操作。
插入文本直到文本框填满并计算可见行数。
对于这个例子,我猜测它们是 5。

然后在 TextBox 的 Change 事件中输入以下内容。

Private Sub TextBox1_Change()
    If Me.TextBox1.LineCount > 5 Then
        'fire your macro here
    End If
End Sub

关于excel - 当文本长度溢出用户表单文本框时触发事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76799187/

相关文章:

excel - 如何遍历字母和数字序列 (I30112-J01111)

vba - Excel Vba 宏用于换行、居中、自动调整列和行的大小

excel - 复制/粘贴范围(单元格(

excel - 如何编写excel公式以返回列标题名称

excel - 如何使用 VBA 中的命令按钮以编程方式在现有用户窗体上创建新复选框?

excel - 如何编辑此 VBA 代码以接受不同的值?

arrays - Let 和 Get 固定大小的数组

python - 文本小部件内 Tkinter 中的滚动条

python - 使用python创建鼠标滚动事件

d3.js - 带有 D3 的 SVG 元素中的滚动条