シート内から配列にある文字がある場所を探す。だけど2つ以上見つかったらエラー

ただ探すだけならFind()を使ったほうがいいけれど、複数のパターンを同一視し、2個以上あるか調べるという処理のときはループで回したほうが楽。

'見つからなかったらNothingで返す
'シート内に複数同じ項目があったらエラー。Cells(65536, 256)で返す
'大文字/小文字の判別無し。LCaseで小文字可して比較してます。
Function SearchOneCell(itemarray)

    Set SearchOneCell = Nothing

    '使用されている最後の列を得る
    Dim usedrange_address
    usedrange_address = ActiveSheet.UsedRange.address
    Dim usedrange_row
    usedrange_row = Right(usedrange_address, Len(usedrange_address) - InStr(usedrange_address, ":"))
    usedrange_row = Split(usedrange_row, "$")(1)

    '使用されている最後の行を得る
    Dim usedrange_column
    usedrange_column = Right(usedrange_address, Len(usedrange_address) - InStr(usedrange_address, ":"))
    usedrange_column = Split(usedrange_column, "$")(2)
    
    Dim y
    For y = 1 To usedrange_column
    
        Dim x
        For x = ConvertAlphabetToNumber("A") To ConvertAlphabetToNumber(usedrange_row)
        
            Dim max_i
            max_i = UBound(itemarray)
            
            Dim i
            For i = 1 To max_i
            
                If LCase(Cells(x, y).Value) = LCase(itemarray(i)) Then
                    If SearchOneCell Is Nothing Then
                        Set SearchOneCell = Cells(x, y)
                    Else
                        '2個以上見つかった
                        Set SearchOneCell = Cells(65536, 256)    '256が列の最大値
                        Exit Function
                    End If
                End If
            
            Next
        
        Next
    
    Next
    
    
End Function