如何用vba判断单元格中选中的部分内容是什么?

 

我们都知道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

 

通过上述代码,就可以随心所意的选择要修改的部分文本内容,然后在其前后添加文本内容。

 

怎么样?今天介绍的思路你学会了吗?

 

 

 

 

       

发表评论