如何将虚线转换为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