洛林经常与采访记录一起工作。采访者将要求受访者说出他们的名字。键入这些内容时,她需要在字母之间插入破折号以表明它们正在被拼写,就像在J-O-H-N D-O-E中一样。洛林想知道是否可以选择名称,然后运行宏以大写该名称并在字母之间插入必需的破折号。

宏非常适合执行此类文本处理。实际上,您可以通过大约十二种方法来解决宏中的问题。以下是一种非常简单的方法:

Sub CapDashNames()

Dim sTemp As String     Dim sName As String     Dim J As Integer

sTemp = UCase(Selection.Range.Text)   ' Make all uppercase     If Len(sTemp) > 1 Then         sName = ""

For J = 1 To Len(sTemp) - 1             ' Add new character to name             sName = sName & Mid(sTemp, J, 1)

If Mid(sTemp, J, 1) >= "A" And Mid(sTemp, J, 1) <= "Z" Then                 ' Add a dash if character was a letter                 sName = sName & "-"

Else                 ' Character added was not a letter                 If Mid(sName, Len(sName) - 1, 1) = "-" Then                     ' If there is a dash just before non-letter,                     ' get rid of it                     sName = Left(sName, Len(sName) - 2)

sName = sName & Mid(sTemp, J, 1)

End If             End If         Next J         ' Add final character         sName = sName & Right(sTemp, 1)

Selection = sName     End If End Sub

基本上,宏会逐步浏览您选择的内容,并在每个字母字符后添加一个破折号。如果该破折号后接非字母字符,则该破折号将被删除。 (例如,这样您就不会在空格之前或之后以破折号结尾。)

为了使用宏,只需选择要修改的名称,然后运行宏。

注意:

如果您想知道如何使用此页面(或_WordTips_网站上的任何其他页面)中描述的宏,我准备了一个包含有用信息的特殊页面。

_WordTips_是您进行经济有效的Microsoft Word培训的来源。

(Microsoft Word是世界上最流行的文字处理软件。)本技巧(1354)适用于Microsoft Word 2007、2010、2013和2016。