see*_*oon 6 excel vba excel-vba
我一直在谷歌上搜索一页,在这里寻找这个看似简单的请求的解决方案,但无济于事.有没有人知道使用vba将字符串转换为句子的可靠方法?
理想情况下,我会将其构建为子而不是函数,因此从GUI调用更容易.
作为参考,我想要:
这里是一个长长的,高级的句子.请立刻向我致敬.
成为:
这是一个冗长,丑陋的大写句子.请立即修改我.
转换为标题案例我发现非常简单(因为有一个内置函数)但转换到句子案例确实非常困难.
我尝试了以下一些方法,但每次都会出现错误:
我怎样才能让它发挥作用?
您可以使用RegExp更有效地运行解析
像这样的东西
Sub Tested()
Call ProperCaps("HERE IS A LONG, UGLY UPPERCASE SENTENCE. PLEASE AMEND ME IMMEDIATELY." & vbCrLf & "next line! now")
End Sub
Function ProperCaps(strIn As String) As String
Dim objRegex As Object
Dim objRegMC As Object
Dim objRegM As Object
Set objRegex = CreateObject("vbscript.regexp")
strIn = LCase$(strIn)
With objRegex
.Global = True
.ignoreCase = True
.Pattern = "(^|[\.\?\!\r\t]\s?)([a-z])"
If .test(strIn) Then
Set objRegMC = .Execute(strIn)
For Each objRegM In objRegMC
Mid$(strIn, objRegM.firstindex + 1, objRegM.Length) = UCase$(objRegM)
Next
End If
MsgBox strIn
End With
End Function
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6164 次 |
最近记录: |