如果要开发供其他人使用的工作表,则可能希望他们始终以大写形式输入信息。 Excel提供了一个工作表功能,该功能可让您将信息转换为大写形式,但不适用于人们实际输入的信息。例如,如果有人在单元格B6中输入信息,则不能使用工作表函数将B6中的信息转换为大写。

相反,您必须使用宏为您进行更改。在VBA中进行编程时,只要工作表单元格中发生任何更改,就可以强制Excel运行特定的宏。以下宏可用于将所有工作表输入转换为大写:

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.HasFormula Then Exit Sub         Application.EnableEvents = False         Target = UCase(Target.Cells(1))

Application.EnableEvents = True End Sub

但是,为了使宏起作用,必须在特定位置输入该宏。

请按照下列步骤放置宏:

。通过按Alt + F11来显示VBA编辑器。

。在编辑器左侧的“项目”窗口中,双击正在使用的工作表的名称。 (您可能需要先打开VBAProject文件夹,然后打开其下的Microsoft Excel Objects文件夹。)

。在工作表的代码窗口中,粘贴上面的宏。

。关闭VBA编辑器。

现在,输入到工作表任何单元格中的所有内容(公式除外)都将自动转换为大写。如果您不希望所有内容都被转换,而只希望工作表中特定区域中的单元格被转换,则可以对宏进行一些修改:

Private Sub Worksheet_Change(ByVal Target As Range)

If Not (Application.Intersect(Target, Range("A1:B10")) _       Is Nothing) Then         With Target             If Not .HasFormula Then                 Application.EnableEvents = False                 .Value = UCase(.Value)

Application.EnableEvents = True             End If         End With     End If End Sub

在此特定示例中,将仅转换在单元格A1:B10中输入的文本;其他所有内容将保持输入状态。如果需要转换其他范围,请在宏的第二行中指定该范围。

注意:

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

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(9813)适用于Office 365中的Microsoft Excel 2007、2010、2013、2016、2019和Excel。您可以在此处为Excel的较早菜单界面找到此技巧的版本: