我不知道为什么在尝试运行此代码时总是出现错误。在出现MsgBox
之后出现错误,但是在错误框上单击“调试”后,Msgbox
行被突出显示。我怀疑First
和Last
范围变量存在问题。
我测试了变量ws和Criteria是否有效,并注释掉了该函数的其余部分以查找问题。我之前使用的是这段代码,没有问题,所以我不知道更改了什么。
Function TotalUniqueValues(ws As Worksheet, Criteria As String) As Integer
Dim Last As Range, First As Range, rng As Range
Set Last = ws.Cells.Find(What:=Criteria, _
After:=Range("B1"), _
LookAt:=xlPart, _
LookIn:=xlValues, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious, _
MatchCase:=False)
Set First = ws.Cells.Find(What:=Criteria, _
After:=Range("B1"), _
LookAt:=xlPart, _
LookIn:=xlValues, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False)
MsgBox Last.Address
Set rng = Range(First, Last)
End Function
答案 0 :(得分:0)
很可能从未设置过Last对象。 您可以通过在MsgBox Last.Address之前之前将该行放置在该行中进行测试
if Last is Nothing then stop