可能的情况,假设我们创建了一个包含以下行的Range Object
:
投机买入,FV:EGP19.59
现在我想将Range Object
分成两部分“,”作为delimiter
,以便给定的Range
将变为两个包含“投机购买”和“,FV”的范围:EGP19.59“(两个单独的范围)。
现在我需要使用以下方法将仅包含“投机购买”的第一个范围的情况更改为“投机购买”:
.Case = wdTitleWord
以前我使用.Find
更改以下代码中的范围(这不是完整的代码,因为它只更改范围R,而不是将其拆分为两个):
Sub Range_into_Ranges()
selection.EndKey Unit:=wdLine
selection.MoveUp Unit:=wdParagraph, COUNT:=1, Extend:=wdExtend
Dim R, F As Word.Range
Set R = selection.Range
Set F = R.Duplicate
With F.Find
.Text = ", "
.Forward = True
.Wrap = wdFindStop
.Execute
End With
If F.Find.Found Then
R.SetRange Start:=R.Start, _
End:=F.Start
R.Case = wdTitleWord
Else
End If
End Sub
注意:可能有其他方法可以产生相同的结果。你可以自由地给我一个简单的代码。
答案 0 :(得分:1)
您可以使用WdCharacterCase枚举将案例分配给Range。对于标题案例:
R.Case = wdTitleWord
加入示例代码的上下文,如下所示。我做了一些调整:
Dim R As Word.Range
Split
函数来根据分隔符划分字符串。我使用它来搜索术语,以便您可以直接获得范围示例代码
Sub Range_into_Ranges()
' Selection.EndKey Unit:=wdLine
' Selection.MoveUp Unit:=wdParagraph, Count:=1, Extend:=wdExtend
Dim R As word.Range, F As word.Range
Dim sTerm As String, bFound As Boolean
Set R = Selection.Paragraphs(1).Range
R.MoveEnd wdCharacter, -1 'Trim off the paragraph mark
sTerm = R.Text
sTerm = Split(sTerm, ",")(0)
Set F = R.Duplicate
With F.Find
.Text = sTerm
.Forward = True
.wrap = wdFindStop
bFound = .Execute
End With
If bFound Then
F.Case = wdLowerCase
F.Case = wdTitleWord
Else
End If
End Sub