马琳(Marlene)是一位老师,她的学生们喜欢单词搜索。她发现制作它们非常耗时,但是学生们似乎在使用它们时会更好地记住课程资料。马琳(Marlene)想知道是否有某种方法可以用字母A到Z来自动填充一系列单元格。这样,她可以使用该功能用字母填充单词搜索的正方形,然后再将其中一些字母替换为实际要搜索的单词。

Excel中的自动填充工具具有一些将自动填充的标准序列,例如日期和数字序列。但是,AutoFill的非常强大的部分是您可以创建自定义列表,该工具使用的自定义列表与内置序列一样容易。为了手动创建自定义列表,您可以按照以下步骤操作:

。显示“ Excel选项”对话框。 (在Excel 2007中,单击Office按钮,然后单击Excel选项。在Excel 2010和Excel2013中,显示功能区的“文件”选项卡,然后单击“选项”。)

。如果您使用的是Excel 2007,请确保在对话框的左侧选择了“流行”。如果您使用的是Excel 2010或Excel 2013,请单击屏幕左侧的“高级”,然后向下滚动到“常规”区域。

。单击编辑自定义列表。 Excel将显示“自定义列表”对话框,并隐藏“ Excel选项”对话框。 (请参见图1。)

。从对话框左侧的“自定义列表”列表中选择“新列表”选项。

。在“列表条目”框中,输入字母表中的每个字母,每行一个字母。 (在您输入的每个字母后按Enter。)

。完成后,单击添加按钮。

。单击确定完成。

要使用新创建的自定义列表,只需键入一个或两个您要用来开始序列的字母,选择这些单元格,然后使用“自动填充”手柄将要填充的单元格拖到尽可能多的位置即可。

还有一种创建自定义列表的方法可能会更容易一些,以防万一您不想在对话框中键入26个字母。相反,如果您已经在26个单元格中包含字母,请按照下列步骤操作:

。选择包含字母的单元格。

。显示“ Excel选项”对话框。 (在Excel 2007中,单击Office按钮,然后单击Excel选项。在Excel 2010和Excel2013中,显示功能区的“文件”选项卡,然后单击“选项”。)

。如果您使用的是Excel 2007,请确保在对话框的左侧选择了“流行”。如果您使用的是Excel 2010或Excel 2013,请单击屏幕左侧的“高级”,然后向下滚动到“常规”区域。

。单击编辑自定义列表。 Excel将显示“自定义列表”对话框,并隐藏“ Excel选项”对话框。您还应该注意,在“导入”按钮的左侧显示了在步骤1中选择的单元格范围。

。单击导入按钮。 Excel将所选单元格的内容添加为自定义列表。

。单击确定。

当然,使用自定义列表有一个缺点,尤其是在创建单词搜索时:添加到空白方块中的字母始终处于可预测的顺序,这会使查找实际单词比您想要的要容易一些。为了使难题更具挑战性,最好用随机字母填充非单词方块。

一种获取随机字母的简单方法是使用以下公式:

=CHAR(RANDBETWEEN(65,90))

该公式有效,因为RANDBETWEEN函数返回提供的两个边界值之间的随机数值。在这种情况下,它将返回65到90之间的值,分别是字母A和Z的ASCII值。然后使用CHAR函数将这个随机数字值转换为实际字母。

如果您创建了许多单词搜索难题,则可能需要使用宏来用随机字母填充整个单元格区域。

可以通过多种方式将这样的宏组合在一起。以下是特别灵活的一种。它可以与预选范围(运行宏时选择的范围)一起使用,也可以在运行宏后选择一个范围。

Sub AlphaFill()

Dim Cell, CellChars     Dim Default, Prompt, Title     Dim rangeSelected As Range     Dim UpperCase As Boolean

Title = "AlphaFill Cell Selection"

Default = Selection.Address     Prompt = vbCrLf _       & "Use mouse in conjunction with " _       & "SHIFT and CTRL keys to" & vbCrLf _       & "click and drag or type in name(s) " _       & "of cell(s) to AlphaFill" & vbCrLf & vbCrLf _       & "Currently selected cell(s): "

& Selection.Address

On Error Resume Next     Set rangeSelected = InputBox(Prompt, Title, _       Default, Type:=8)

If rangeSelected Is Nothing Then Exit Sub

UpperCase = True     Randomize     For Each Cell In rangeSelected         CellChars = Chr(64 + Int((Rnd * 26) + 1))

If Not UpperCase Then CellChars = LCase(CellChars)

Cell.Value = CellChars     Next End Sub

按照编写的宏代码,将大写字母插入您指定的任何范围。如果要改用小写字母,则只需将UpperCase变量设置为False而不是True。

注意:

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

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

本技巧(7803)适用于Microsoft Excel 2007、2010和2013。您可以在以下旧版Excel菜单界面中找到本技巧的版本: