生成唯一的顺序名称(Microsoft Excel)
史蒂文(Steven)正在测试某些软件,他需要在程序中添加一堆“假”名称。他希望通过Namezzz对这些名称进行模式化,例如Nameaaa,Nameaab,Nameaac等。这将需要创建17,576个名称(26 x 26 x 26)。他想知道是否有一种简单的方法可以在Excel中生成所有这些名称。
这种重复性的任务只需要一个宏。 (它们非常适合执行您不想手动执行的无聊,沉闷,重复的任务。)清单1显示了一个简单的宏,可以完成所需的繁琐工作。
Listing 1. CreateNames宏。
Sub CreateNames() Dim i As Integer Dim x As Integer Dim y As Integer Dim z As Integer i = 1 For x = 97 To 122 For y = 97 To 122 For z = 97 To 122 Cells(i, 1) = "Name" & Chr(x) _ & Chr(y) & Chr(z) i = i + 1 Next Next Next End Sub
宏使用三个变量(x,y和z)充当“计数器”,以控制将哪个字母添加到填充到单元格中的“名称”上。请注意,For … Next循环的范围是97到122,这是小写的a到z的ASCII码。
如果由于某种原因不想使用宏,请在空白工作表的单元格A1中键入以下公式:
="Name" & CHAR((ROW()-1)/676+97)&CHAR(MOD( (ROW()-1)/26,26)+97)&CHAR(MOD(ROW()-1,26)+97)
这是一个公式,导致显示“ Nameaaa”。
将公式复制到第17,576行,您将得到假名称。
注意:
如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。
_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。
本技巧(12129)适用于Microsoft Excel 2007、2010、2013和2016。您可以在此处为Excel的较旧菜单界面找到此技巧的版本:
链接:/ excel-Generating_Unique_Sequential_Names [生成唯一的,顺序的名称]。