我们都知道Excel单元格中可以存储各种文字内容。
如果我们选中了单元格里的部分内容,想在选中内容的前后分别插入不同的字符,这个用VBA怎么做呢?
这个直接在Excel单元格中操作是没有办法实现的,或者说实现难度非常之大。
我们可以换个思路,把单元格的内容体现在窗体文本框中,通过文本框来选择要操作的部分内容。
如下图所示
在文本框中选择要添加的部分内容,然后选择要添加的XML标签,单击”开始添加”即可在选中的文本内容前后添加要添加的文本内容,最后将添加后的文本返回到单元格中。
这里需要了解的是在文本框控件中,可以使用SelStart属性返回选中的文本内容的起始位置,SelLength属性返回选中的文本内容的字符长度,SelText 属性返回选中的文本内容。
核心代码如下:
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 = "<" & sTag & ">" & sSText & "</" & sTag & ">" sText = Left(sText, iStart - 1) & VBA.Replace(sText, sSText, sNText, iStart, 1) .TextBox1.Text = sText Excel.ActiveCell = sText End If End With End Sub
通过上述代码,就可以随心所意的选择要修改的部分文本内容,然后在其前后添加文本内容。
怎么样?今天介绍的思路你学会了吗?