2015-08-07 4 views
0

Я хотел бы использовать опцию Select Case в excel vba для фильтрации правильных данных. я сделать следующее:Несколько операторов в Select Case vba

For i = 2 To LastRow 

    StartTime = Worksheets("Task input").Cells(1 + i, 9) 
    Status = Worksheets("Task input").Cells(1 + i, 14) 

    Select Case StartTime And Status 

      Case TimeWindowBound1 To TimeWindowBound2 And "Planned" 
       Worksheets("Performance output").Cells(5, 2) = Worksheets("Performance output").Cells(5, 2) + 1 

    End Select 

Next i 

Он сравнивает StartTime и статус. Однако это дает ошибку? Любое решение?

+0

эта работа? Я думаю, что это не сработает. –

+0

@ Николя не работает и поэтому этот вопрос;) – F1990

ответ

3

Вы не можете сделать это непосредственно в выбранном случае

(документация Выбрать случае https://msdn.microsoft.com/en-us/library/cy37t14y.aspx)

Выбор: случай может работать только на одной переменной. Но здесь решение не очень сложно:

Select Case StartTime 
Case TimeWindowBound1 To TimeWindowBound2 
    If Status = "Planned" then Worksheets("Performance output").Cells(5, 2) = Worksheets("Performance output").Cells(5, 2) + 1 
End Select 
+0

Porte, Спасибо за ваш ответ! Простое решение;) – F1990

0

Действительно, я сюрприз с кодом. Я не нашел ничего подобного.

Вам нужно знать, что SELECT CASE [condition] AND [condition] не может использовать ни в каком месте.

Но вы должны проверить и, поэтому постарайтесь как следует:

Public Sub testSelect() 

    Dim sDate As Date 
    Dim sString As String 

    'Set test date 
    sDate = "10/02/2014" 

    'Set test string 
    sString = "select" 

    'First select date, because it need to check in a range 
    Select Case sDate 

     'If it is in desire range, check string 
     Case "10/01/2014" To "10/30/2014" 

      'If string is equal, show message for True. 
      If sString = "select" Then 
       MsgBox ("True") 

      'Else show message for False 
      Else 
       MsgBox ("False") 
      End If 

    End Select 

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