2015-06-16 3 views
0

У меня есть следующий код:Если значение не найдено при поиске первенствовать

 Dim xlApp As Excel.Application 
     Dim xlBook As Excel.Workbook 
     Dim xlSheet1 As Excel.Worksheet 
     Dim rng As Excel.Range 
     Dim codeabc As String 
     Dim i As Integer 
     If StoreNumber.Text = String.Empty Then 
      MsgBox("Please fill out 'Store Number'") 
      Exit Sub 
     End If 
     xlApp = CreateObject("Excel.Application") 
     xlBook = xlApp.Workbooks.Open("C:\Users\jefhill\Desktop\MyUPS.csv") 
     xlSheet1 = xlBook.Worksheets(1) 
     rng = xlSheet1.Range("a1:a3000") 
     codeabc = (StoreNumber.Text) 
     For i = 1 To rng.Count 
      If rng.Cells(i).Value = codeabc Then 
       Address.Text = (rng.Cells(i).offset(0, 1).value()) & vbCrLf & (rng.Cells(i).offset(0, 2).value()) & " " & (rng.Cells(i).offset(0, 3).value()) & " " & (rng.Cells(i).offset(0, 4).value()) 
       Phone.Text = (rng.Cells(i).offset(0, 5).value()) 
      End If 
     Next i 
     xlBook.Close() 

выше работает отлично. Но я пытаюсь добавить способ, когда значение, которое вы ищете, НЕ найдено. Я попытался добавить «else» в оператор «if», но это просто дало ему ошибку каждый раз.

+0

Какую ошибку вы получаете? – user990423

ответ

2

Вам нужно еще одну переменную для отслеживания, если он был найден:

Dim found as Boolean 
    found = False 
    For i = 1 To rng.Count 
     If rng.Cells(i).Value = codeabc Then 
      Address.Text = (rng.Cells(i).offset(0, 1).value()) & vbCrLf & (rng.Cells(i).offset(0, 2).value()) & " " & (rng.Cells(i).offset(0, 3).value()) & " " & (rng.Cells(i).offset(0, 4).value()) 
      Phone.Text = (rng.Cells(i).offset(0, 5).value()) 

      'set the flag 
      found = True 
     End If 
    Next i 

    If Not found Then 
     'logic if not found 
    End If 
+0

Это сработало отлично - и вы были так быстр, я даже не могу ответить на еще один ответ! : D – dwb

Смежные вопросы