我试了一下下面的code,应该会给你Bold Font Char的位置。你可以用同样的逻辑,一个char 一个char地看,是不是 Bold。
Function getBoldFontPos(rng As Range) As Integer Dim ll As Integer ll = len(rng.Cells(1,1).Value) Dim iret As Integer iret = -1 Dim ii As Integer For ii = 1 To ll If rng.Cells(1,1).Characters(ii,1).Font.FontStyle = "Bold" Then iret = ii End If Next getBoldFontPos = iret End Function
请教下Excel大神, 如何用Marcos/ VBA 把一个单元格里的粗体和非粗体分出来呢? 像图片所示。 不胜感激~~~~~~
这个方法我想到了, 不适用, 具体的数据比这个复杂。 估计需要VBA。 谢谢你~
我尽量把,你先去把develper的quick access从option搞出来,然后点record macro,把你要的骚操作都点击一遍,然后stop record,看看能不能成功。万一不行你就要打开你record的macro,看看哪里出错。 各人case不同,我总不能把我的code放这里吧。
你试试Flash Fill 功能吧:
https://www.excel-easy.com/examples/flash-fill.html
record不行吧,比如你选了粗体字,最多record你选了某一格的几个字,粗体是你脑子里想的没办法record啊。
Flash fill 好像不适于用粗体的选择。 谢谢
Nevermind you can''t use a word...sorry
=left(a1,search(“take”,a1)-1) =right(a1,Len(a1)-search(“take”,a1)+1)
其实我觉得这也行,但是楼主说真实的比这个复杂。我能想到的是比如有人名就一个字,那分开的话合起来就不好办了,有的不用合,有的要合两个或者三个。
O 我没有仔细看回复
Function getBoldFontPos(rng As Range) As Integer Dim ll As Integer ll = len(rng.Cells(1,1).Value)
Dim iret As Integer iret = -1
Dim ii As Integer For ii = 1 To ll If rng.Cells(1,1).Characters(ii,1).Font.FontStyle = "Bold" Then iret = ii End If Next getBoldFontPos = iret End Function
谢谢你! 我来试一下 太感谢!
太感谢了!! 我来试一下!! 谢谢