当您开发供其他人使用的工作表时,应测试这些工作表以确保它们能够按预期工作。

对于包含复杂公式或将用于关键目的的工作表,尤其如此。测试工作表的概念意味着您将需要生成某种数据以用于测试工作表。

有关将软件测试套件组合在一起的全部书籍已经撰写完毕。编译测试数据的严格程度在很大程度上取决于受众的需求和工作表的性质。

不幸的是,没有快速的解决方案可以自动找出您需要什么并为您生成数据。但是,您可以在Excel中使用一些工具来实现此目的。

首先,如果需要生成随机数值,则可以使用RAND或RANDBETWEEN工作表函数。区别在于RAND会生成介于0和1之间的值,而RANDBETWEEN会在您设置的任何界限之间生成整数值。

但是,随机数据可能不适合您的测试需求。当您测试公式的边界时,尤其如此。

例如,使用大值,小值或大,小值的组合进行测试。同样,您可能需要测试不适当的值,例如使用文本作为输入而不是数字(反之亦然)。您需要仔细考虑所有条件,然后选择适合您需要的数据类型。

如果愿意,可以使用宏来生成测试数据。下面的宏使用您设置的任何边界(最小和最大)之间的随机数值填充选定范围的单元格。

Sub RandNums()

Dim MyRange As Range     Dim lMin As Long, lMax As Long     Dim dRand As Double

' If selection is not Excel Range     If TypeName(Selection) <> "Range" Then Exit Sub

Set MyRange = Selection

' Get Min and Max value     lMin = CLng(InputBox("Minimum?"))

lMax = CLng(InputBox("Maximum?"))



Randomize     Application.ScreenUpdating = False

For Each c In MyRange.Cells         ' Calculate random value, where         ' Value >= Min And Value <= Max         dRand = Rnd * (lMax - lMin) + lMin

' Use the following line only if the random         ' value should be an integer         ' dRand = Int(dRand)



c.Value = dRand     Next c

Application.ScreenUpdating = True End Sub

若要使用宏,只需选择要包含随机数值的单元格范围,然后运行宏。如果必须在单元格中使用整数值,则可以“取消注释”宏中的注释行。

如果要使用随机日期填充单元格区域,则对RandNums宏进行一些修改即可得到以下结果。

Sub RandDates()

Dim MyRange As Range     Dim dtMin As Date, dtMax As Date     Dim dtRand As Date

' If selection is not Excel Range     If TypeName(Selection) <> "Range" Then Exit Sub

Set MyRange = Selection

' Get Min and Max value     ' From: 1/1/1990 (put your start Date)

dtMin = #1/1/1990#     ' To: Today     dtMax = Date

Randomize     Application.ScreenUpdating = False

For Each c In MyRange.Cells         ' Calculate random value, where         ' Value >= Min And Value <= Max         dtRand = Rnd * (dtMax - dtMin) + dtMin         dtRand = Int(dtRand)



c.Value = dtRand         ' Change format for cell, below, as desired         c.NumberFormat = "m/d/yyyy"

Next c

Application.ScreenUpdating = True End Sub

同样,只需选择一个范围,然后运行宏。您可以修改设置为dtMin和dtMax变量的初始值,以便为所需日期指定边界。如果需要,还可以在将随机日期存储在单元格中之后更改应用于单元格的格式。

注意:

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

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

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