vba怎样读取选定单元格内容_如何⽤vba判断单元格中选中的
部分内容是什么?
我们都知道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 & "" & 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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
PrivateSubCmdOK_Click()
WithUserForm1
sText=.TextBox1.Text
sTag=.ComboBox1.Text
IfLen(sText)>0Thentextbox控件边框设置
iStart=.TextBox1.SelStart
IfiStart=0TheniStart=1
sSText=.TextBox1.SelText
sNText=""&sSText&""&sTag&">"
sText=Left(sText,iStart-1)&VBA.Replace(sText,sSText,sNText,iStart,1)
.TextBox1.Text=sText
Excel.ActiveCell=sText
EndIf
EndWith
EndSub
通过上述代码,就可以随⼼所意的选择要修改的部分⽂本内容,然后在其前后添加⽂本内容。怎么样?今天介绍的思路你学会了吗?

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。