如何将虚线转换为camelcase
有没有办法转换
my-dashed-word
成
myDashedWord
在Excel中?
试试这个小UDF() :
Public Function DashFixer(inpt As String) As String If inpt = "" Then DashFixer = "" Exit Function End If ary = Split(inpt, "-") For i = LBound(ary) + 1 To UBound(ary) ary(i) = Application.WorksheetFunction.Proper(ary(i)) Next i DashFixer = Join(ary, "") End Function
其他版本:
Public Function dCam(ByRef cel As String) As String dCam = Replace(StrConv(Replace(cel, "-", " "), vbProperCase), " ", "") 'MyDashedWord dCam = LCase(Left(dCam, 1)) & Right(dCam, Len(dCam) - 1) 'myDashedWord End Function
=SUBSTITUTE(PROPER(A1),"-","") 'MyDashedWord =LEFT(A1) & RIGHT(SUBSTITUTE(PROPER(A1),"-",""),LEN(SUBSTITUTE(A1,"-",""))-1) 'myDashedWord
我想只有VBA对你来说是实用的,但是有一个公式可以复制:
=SUBSTITUTE(A1,MID(A1,FIND("-",A1),2),UPPER(MID(A1,FIND("-",A1)+1,1)))
还有一个版本。
B2中的公式是,
=LEFT(A2, FIND("-", A2&"- ")-1)&SUBSTITUTE(PROPER(MID(A2, FIND("-", A2&"- ")+1, 255)), "-", "")
远不及我所希望的那样有效率,因为没有办法一刀切换
.Pattern = "\-([az)([az]+)" Set objRegexMC = .Replace(strIn, UCase("$1") & "$2")
但是正如我在那里用RegExp
去那里一样。
Function StrCon1(strIn As String) As String Dim objRegex As Object Dim objRegexMC As Object Dim objRegexM As Object Set objRegex = CreateObject("vbscript.regexp") With objRegex .Global = True .Pattern = "\-([az])([az]+)" Set objRegexMC = .Execute(strIn) For Each objRegexM In objRegexMC strIn = Replace(strIn, objRegexM,UCase$(objRegexM.submatches(0)) & objRegexM.submatches(1)) Next End With StrCon1 = strIn End Function