Vba 更改范围文本的大小写并键入
可能的情况是,假设我们创建了一个包含以下行的范围对象: 投机性买入,FV:EGP19.59 现在,我想将Range对象分成两部分,用,作为分隔符,这样给定的范围将变成两个范围,包含投机性买入和FV:EGP19.59两个单独的范围 现在,我需要将仅包含投机性购买的第一个范围的情况更改为投机性购买,使用: .Case=wdTitleWord 之前我使用的是。查找以更改以下代码中的范围这不是完整的代码,因为它只是更改范围R,而不是将其拆分为两个:Vba 更改范围文本的大小写并键入,vba,object,split,range,ms-word,Vba,Object,Split,Range,Ms Word,可能的情况是,假设我们创建了一个包含以下行的范围对象: 投机性买入,FV:EGP19.59 现在,我想将Range对象分成两部分,用,作为分隔符,这样给定的范围将变成两个范围,包含投机性买入和FV:EGP19.59两个单独的范围 现在,我需要将仅包含投机性购买的第一个范围的情况更改为投机性购买,使用: .Case=wdTitleWord 之前我使用的是。查找以更改以下代码中的范围这不是完整的代码,因为它只是更改范围R,而不是将其拆分为两个: Sub Range_into_Ranges() se
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
注:可能有其他方法产生相同的结果。您可以自由地向我建议另一个简单的代码。您可以使用WdCharacterCase枚举将一个大小写指定给一个范围。关于产权案例:
R.Case = wdTitleWord
将其放入示例代码的上下文中,如下所示。我做了一些调整:
我的版本假设您希望处理当前选择的段落,这就是我注释掉前两行的原因
在VBA中,您需要声明每个变量的数据类型,否则它就是一个变量。所以:调暗R作为单词范围
VBA提供了分割函数,可以根据分隔符分割字符串。我使用它来获取要搜索的术语,这样您就可以直接获取范围
我发现在设置所有大写字母的文本的标题大小写时,并没有将大写字母减少到小写字母。但首先应用小写,然后是标题,确实有效。 示例代码
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
在设置包含所有大写字母的文本的标题大小写时,不会将大写字母减少为小写字母。但首先应用小写,然后是标题,确实有效。我认为这就是问题所在,而这只是我的旧版本代码无法工作的主要原因。无论如何,谢谢。@IbneAshiq不客气。在提出问题时,它确实有助于提供复制所需的步骤。如果没有示例文本,我就不会找到它!