我们都知道Excel单元格中可以存储各种文字内容。
如果我们选中了单元格里的部分内容,想在选中内容的前后分别插入不同的字符,这个用VBA怎么做呢?
这个直接在Excel单元格中操作是没有办法实现的,或者说实现难度非常之大。
我们可以换个思路,把单元格的内容体现在窗体文本框中,通过文本框来选择要操作的部分内容。
如下图所示
在文本框中选择要添加的部分内容,然后选择要添加的XML标签,单击”开始添加”即可在选中的文本内容前后添加要添加的文本内容,最后将添加后的文本返回到单元格中。
这里需要了解的是在文本框控件中,可以使用SelStart属性返回选中的文本内容的起始位置,SelLength属性返回选中的文本内容的字符长度,SelText 属性返回选中的文本内容。
核心代码如下:
Visual Basic
Private Sub CmdOK_Click()
With UserForm1
sText = .TextBox1.Text
sTag = .ComboBox1.Text
If Len(sText) > 0 Then
iStart = .TextBox1.SelStart
If iStart = 0 Then iStart = 1
sSText = .TextBox1.SelText
sNText = "" & sSText & ""