在Excel(Microsoft Excel)中模仿小型大写字母
Conrad希望模仿Excel中Word的“小写”功能。他能想到的唯一方法是开发一个宏,该宏可以遍历单元格中的每个字符。如果字符是小写的11磅,则宏应将字符更改为大写的9磅。
如果字符是大写(或不是字母),则不应受到影响。问题是,康拉德不知道如何以上述方式影响单元格中各个字符的格式。
当使用宏仅影响单元格中的某些字符时,最好记住每个单元格都有其自己的Characters集合,可以对其进行访问和修改。如您所料,集合中的每个元素都代表一个单元格中的单个字符。
这使我们可以建立一个宏来检查单元格中当前的内容,如果该字符当前为小写,则仅将该字符转换为大写并减小该字符的字体大小。
Sub SmallCaps() Dim rCell As Range Dim sWords As String Dim sCharacter As String Dim x As Long 'go through each cell in selection For Each rCell In Selection 'Don't want to work on formulas If Not rCell.HasFormula Then sWords = rCell.Value 'Get the cell contents For x = 1 To Len(sWords) 'Act on each letter sCharacter = Mid(sWords, x, 1) If sCharacter >= "a" And sCharacter <= "z" Then 'sCharacter is a lowercase letter With rCell.Characters(Start:=x, Length:=1) 'Decrease the font size by 2 .Font.Size = .Font.Size - 2 'Make character uppercase .Text = UCase(sCharacter) End With End If Next End If Next End Sub
该宏在运行时对选定的任何单元格起作用。
它检查以确保该单元格不包含公式(跳过了公式),然后对该单元格中的小写字符进行了任何修改。
使用这样的宏存在一些缺点,您应该意识到它们。最大的缺点是它实际上会修改单元格中的内容。完成后,单元格将包含所有大写文本,即使格式可能使其看起来像小写字母。这意味着您以后再次运行宏时可能会遇到问题,并且Excel的校对工具(例如拼写检查器)将无法对全部大写的单词起作用。 (但是,可以将Excel配置为仍然拼写检查此类单词。)
由于存在这些缺点,您可能希望采用一种完全不同的方法-更改要用于大写字母的单元格的字体。如果在网上搜索“小写字体”(不带引号),则应该可以找到许多候选字体,并且其中很多都是免费的。这是一个您可能会喜欢的网站:
https://www.fontsquirrel.com/fonts/list/tag/small%20caps
只需下载所需的字体(从此字体或其他信誉良好的来源)并将其安装在系统上。当您重新启动Excel时,字体应可用于格式化单元格。即使实际的单元格内容混合使用大写和小写,格式化为使用这种字体的单元格也会以小写形式显示文本。
_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。
本技巧(653)适用于Microsoft Excel 2007、2010、2013和2016。