我正在为工作创建一个测试计划模板,其中包含一个包含各种字段的表格,每一行都由"测试号码"柱。添加测试用例时,我希望它检查输入的测试用例是否已经在表中。
我尝试使用传入参数的函数来执行此操作,该参数是输入的测试用例编号。我希望这循环遍历我的行,如果找到匹配的大小写,我想要显示一条错误消息并退出该子句。这是我到目前为止所做的,但它似乎没有用。
功能:
$value
主要街区的代码:
Function ExistingTest(x As Variant) As Boolean
Dim intStartRow As Integer
Dim intStartCol As Integer
Dim intRowCount As Integer
Dim intColCount As Integer
Dim TestTable As String
TestTable = "Tests"
intRowCount = Range(TestTable).Rows.Count
intColCount = Range(TestTable).Columns.Count
intStartRow = Range(TestTable).Rows(0).Row
intStartCol = Range(TestTable).Columns(1).Column
ExistingTest = False
For i = 1 To intRowCount
If Range(TestTable).Rows(i).Columns(1).value = x Then
ExistingTest = True
Exit For
End If
Next i
End Function
答案 0 :(得分:0)
我不会为此使用循环,您可以使用函数“CountIf”来计算ID的重复次数。
此外,您不需要特殊功能,只需使用数据验证即可。 数据>数据验证>习惯 假设您的数据在A2中开始且ID在A列中,则添加以下公式,调整此项为ifneeded
=COUNTIF(A:A,A2)=1
就是这个人现在只能输入唯一的ID。
如果您仍想使用用户定义的函数,请查看此示例,该示例也使用CountIf
Function ExistingTest(ByVal r As Range, ByVal strNamedRange As String) As Boolean
ExistingTest = WorksheetFunction.CountIf(Range(strNamedRange).Columns(1), r.Value)
End Function
Sub MainBlock()
If ExistingTest(TNName, "Test") Then
response = MsgBox("ERROR: Test Evidence for Test Number " + TNName + " Already exists")
End If
End Sub
希望这会有所帮助。
由于