将罗马数字更改为阿拉伯语(Microsoft Word)
布拉德利(Bradley)的文档在文本中包含许多罗马数字。他需要一种简单的方法来将这数千个罗马数字更改为阿拉伯数字。
这些不是任何性质的领域;它们只是在文本中键入为罗马数字。他想知道是否有一种方法可以轻松地将其更改为阿拉伯语版本。
不幸的是,Word中没有将罗马数字转换为阿拉伯数字的功能。您可以根据需要简单地使用“查找和替换”来搜索罗马数字,但是您必须对每个数字进行单独的搜索。您可以使用通配符搜索来搜索完全由大写罗马数字组成的单词,这将使搜索变得相当容易。您需要做的就是搜索“ <[CDILMVX] \ {1,}>”(不带引号),并确保已选中“使用通配符”复选框。当您单击“查找下一个”时,将找到下一个罗马数字,然后您可以手动将其更改为阿拉伯数字。
尝试进行转换的另一种方法是使用宏。您可以创建一个宏来查看文档中的每个单词,然后尝试确定它是否适合由罗马数字组成。但是,您可能会得到一些误报,特别是如果您的文档中包含的首字母缩写词可能会混淆为罗马数字。 (例如,如果您对信用卡使用首字母缩写CC,则可以将其视为200的罗马数字。)
下面的宏集将逐步浏览文档中的每个单词,如果单词仅包含罗马数字(I,V,X,L,C,D和M),则会询问用户是否应将宏转换为数字。
Sub ConvertRoman() Dim wrdX Dim wrd As String Dim tstSW As Boolean Dim J As Long For Each wrdX In ActiveDocument.Words wrd = UCase(Trim(wrdX)) If wrd = "" Or wrd = "I" Or wrd = vbCr Then tstSW = False Else tstSW = True End If For J = 1 To Len(wrd) If InStr("MDCLXVI",Mid(wrd, J, 1)) = 0 Then tstSW = False Exit For End If Next J If tstSW Then wrdX.Select Selection.MoveLeft unit:=wdCharacter, _ Count:=Len(wrdX) - Len(wrd), _ Extend:=wdExtend J = MsgBox("Convert " & wrd & " to Arabic", vbYesNoCancel) If J = vbCancel Then Exit Sub If J = vbYes Then Selection.TypeText Text:=RomanToArabic(wrd) End If Next wrdX End Sub
Function RomanToArabic(Rm As String) As String Dim J As Long Dim ab As Long Dim cc As Long Dim dd As Long ab = 0 Rm = Trim(Rm) J = 1 Do cc = GetValue(Mid(Rm, J, 1)) dd = GetValue(Mid(Rm, J + 1, 1)) If cc < dd Then ab = ab + dd - cc J = J + 1 Else ab = ab + cc End If J = J + 1 Loop Until J >= Len(Rm) If J = Len(Rm) Then ab = ab + GetValue(Mid(Rm, J, 1)) End If RomanToArabic = Trim(Str(ab)) End Function
Function GetValue(ss As String) As Long Dim Cde() Dim Cvalue() Dim J As Long Cde = Array("M", "D", "C", "L", "X", "V", "I") Cvalue = Array(1000, 500, 100, 50, 10, 5, 1) For J = 0 To 6 If ss = Cde(J) Then GetValue = Cvalue(J) Exit Function End If Next J GetValue = 999999 End Function
由于大写的I是文本中非常常见的词,因此宏不会停止在每个宏上以确定是否应该进行转换。
但是,如果大写字母I是仅由罗马数字(例如XLVII)组成的较长单词的一部分,则将其视为转换的候选对象。宏还假定您所有的罗马数字均为大写。
注意:
如果您想知道如何使用此页面(或_WordTips_网站上的任何其他页面)上描述的宏,我准备了一个包含有用信息的特殊页面。
_WordTips_是您进行经济有效的Microsoft Word培训的来源。
(Microsoft Word是世界上最流行的文字处理软件。)此技巧(12509)适用于Microsoft Word 97、2000、2002和2003。您可以找到Word(Word 2007)的功能区界面的该技巧版本。和更高版本)在这里: