VBA定位文本框控件中光标位置 您所在的位置:网站首页 vba窗体初始化函数 VBA定位文本框控件中光标位置

VBA定位文本框控件中光标位置

2024-01-27 17:48| 来源: 网络整理| 查看: 265

实例需求:用户窗体中有如下4个TextBox控件,TextBox1中已经有文字内容,点击【定位】按钮,统计TextBox1中段落数量,并定位TextBox1中光标位置(箭头处),如下图所示。

在这里插入图片描述

示例代码如下。

Private Sub UserForm_Initialize() TextBox1.Text = "兔年吉祥!" & Chr(10) & _ "新春快乐!" & Chr(10) & _ "万事如意!" End Sub

【代码解析】 用户窗体初始化事件代码,用于在TextBox1控件中加载文字内容。

Private Sub CommandButton1_Click() strTxt = Me.TextBox1.Text arrTxt = Split(strTxt, Chr(10)) Me.TextBox2 = UBound(arrTxt) + 1 intCursorLoc = Me.TextBox1.SelStart intCharQty = 0 For idx = 0 To UBound(arrTxt) If intCursorLoc < intCharQty + Len(arrTxt(idx)) Then Me.TextBox3 = idx + 1 Me.TextBox4 = intCursorLoc - intCharQty + 1 Exit For Else intCharQty = intCharQty + Len(arrTxt(idx)) End If Next End Sub

【代码解析】 第2行代码读取TextBox1控件中的文本内容。 第3行代码将文本字符串按照换行符拆分为数组。 第4行代码为TextBox2控件赋值。Ubound函数获取数组的下标上届,由于下标是0开始的,所以加一就是段落个数。 第5行代码获取光标位置。 第7~15行代码定位光标所在段落位置。 第8行代码条件满足的话,说明光标位于该段落中。 第9行代码为TextBox2控件赋值,idx+1为段落编号。 第10行代码获取光标在段落中的位置,每段第一位置为1。 如果第8行条件不满足,那么第13行代码累加统计截至当前段落的字符总个数。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有