Excel 如何将虚词转换成大小写

Excel 如何将虚词转换成大小写,excel,vba,Excel,Vba,有什么方法可以转换吗 my-dashed-word 进入 在Excel中?我想只有VBA对您来说才是实用的,但有一个公式,可以复制到: =SUBSTITUTE(A1,MID(A1,FIND("-",A1),2),UPPER(MID(A1,FIND("-",A1)+1,1))) 试试这个小UDF(): 其他版本: Public Function dCam(ByRef cel As String) As String dCam = Replace(StrConv(Replace(cel

有什么方法可以转换吗

my-dashed-word
进入


在Excel中?

我想只有VBA对您来说才是实用的,但有一个公式,可以复制到:

=SUBSTITUTE(A1,MID(A1,FIND("-",A1),2),UPPER(MID(A1,FIND("-",A1)+1,1)))
试试这个小UDF():

其他版本:

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

再来一个版本

B2中的公式为

=LEFT(A2, FIND("-", A2&"- ")-1)&SUBSTITUTE(PROPER(MID(A2, FIND("-", A2&"- ")+1, 255)), "-", "")

远没有我所希望的那么高效,因为没有一种方法可以按照

.Pattern = "\-([a-z)([a-z]+)"
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 = "\-([a-z])([a-z]+)"
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

? 请发布您试图解决此问题的任何内容。您想删除-在给定范围内的所有外观吗?谢谢-这是我罕见的公式尝试(我总是跳转到代码),您的回答启发了我
=LEFT(A2, FIND("-", A2&"- ")-1)&SUBSTITUTE(PROPER(MID(A2, FIND("-", A2&"- ")+1, 255)), "-", "")
.Pattern = "\-([a-z)([a-z]+)"
Set objRegexMC = .Replace(strIn, UCase("$1") & "$2")
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 = "\-([a-z])([a-z]+)"
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