我有3个工作表:工作表1,工作表2和工作表3…
在Sheet2中,从单元格B17到列B的末尾,用户可以在单击“提交”按钮上载输入的数据之前输入尽可能多的代码(每个单元格向下输入一个代码)。
在Sheet3(这是一个受保护的隐藏工作表)中,我具有A列(A1:A59),该列是可以提交的可接受代码的列表。
我希望宏执行的操作:用户填写了所需的代码后,宏将从B17到B列的末尾循环遍历单元格,将输入的内容与工作表3中的可接受代码进行比较A列,如果-代码正确,则继续执行下一行代码,否则-弹出一个消息框,指出该代码对于提交无效。
可能包含:C17的相同过程直到C列结束为止,但是似乎没有该部分的代码清单可用于比较……目前正在收集详细信息。如果有一种起点,那么就完美,如果没有,那就不用担心–当我收集了更多信息后,我可能会在问题的这一部分中补充说明。
到目前为止,我的代码如下。如果您认为有一种更有效的方法可以更好地运行,请按您认为合适的方式进行修改-可以使此过程更好的任何其他步骤。如果是这样,请在您的宏版本中添加注释,以包含代码行的作用。
Function Errorr(currentValue)
foundMatch = False
For Each PossibleValue In Worksheets("Sheet3").Range("A1:A59")
If PossibleValue.Value = currentValue Then
foundMatch = True
Exit For
End If
Next
If foundMatch = False Then
Errorr = 1
MsgBox "Please input Profit Center that is available from the list." &
vbNewLine & currentValue & "- Does Not Exist", , "Invalid Profit Center"
End If
End Function
______________
Sub PleaseMatch()
Dim submissionRange As Range
Set ws1 = Worksheets("Sheet2")
Set ws2 = Worksheets("Sheet3")
lastRow1 = ws1.Cells(ws1.Rows.Count, "B").End(xlUp).Row
lastRow2 = ws2.Cells(ws2.Rows.Count, "A").End(xlUp).Row
Set submissionRange = Range(ws1.Range("B17"), ws1.Cells(lastRow1, 2))
For Each currentValue In submissionRange
If Errorr(currentValue.Value) = 1 Then
Exit Sub
End If
Next
‘this is the submit button
Call SUBMIT_FF
End Sub