2016-07-28 4 views
0

У меня есть форма, настроенная с параметрами пары. Я создал свою форму с помощью двух кнопок «Rolling» и «One Time». Я хотел бы установить это как условие, чтобы выбрать, какой случай использовать. Например, если выбрано «Одно время», используйте случай выбора, без расширения ELSE используйте select case WITH EXTEND. Следующий код - это то, что я теперь не уверен, правильно ли выполняю это условие.Выберите случай, основанный на кнопке опции формы

If OnetimeOption.value = True Then 

    Select Case MonthComboBox.value 
     Case "Week One" 
      iCol = "BB" 

     Case "Week Two" 
      iCol = "BC" 

     Case "Week Three" 
      iCol = "BD" 

     Case "Week Four" 
      iCol = "BE" 

     Case "Week Five" 
      iCol = "BF" 

     Case "Week Six" 
      iCol = "BG" 

     Case "One Seven" 
      iCol = "BH" 

     Case "One Eight" 
      iCol = "BI" 

     Case "One Nine" 
      iCol = "BJ" 

     Case "One Ten" 
      iCol = "BK" 

     Case "One Eleven" 
      iCol = "BL" 

     Case "One Twelve" 
      iCol = "BM" 
    End Select 

Else 



    nExtend = 1 'Set this as a default. 
    Select Case MonthComboBox.value 

     Case "Week One" 
      iCol = "BB" 
      nExtend = 12 
     Case "Week Two" 
      iCol = "BC" 
      nExtend = 11 
     Case "Week Three" 
      iCol = "BD" 
      nExtend = 10 
     Case "Week Four" 
      iCol = "BE" 
      nExtend = 9 
     Case "Week Five" 
      iCol = "BF" 
      nExtend = 8 
     Case "Week Six" 
      iCol = "BG" 
      nExtend = 7 
     Case "One Seven" 
      iCol = "BH" 
      nExtend = 6 
     Case "One Eight" 
      iCol = "BI" 
      nExtend = 5 
     Case "One Nine" 
      iCol = "BJ" 
      nExtend = 4 
     Case "One Ten" 
      iCol = "BK" 
      nExtend = 3 
     Case "One Eleven" 
      iCol = "BL" 
      nExtend = 2 
     Case "One Twelve" 
      iCol = "BM" 
      nExtend = 1 
    End Select 

End If 
+0

Почему вы не уверены, что выполняете это условие правильно? – pnuts

+1

Какое значение должно принимать переменные nExtend, если значение OnetimeOption.Value истинно? В настоящий момент он не определен кодом, который вы указали, что, возможно, означает, что он принимает значение нуля (по умолчанию) или значение, указанное последним, когда значение OnetimeOption.Value не соответствует действительности. Кроме того, что вы хотите, чтобы iCol был, когда OnetimeOption.Value является false, а MonthComboBox.value - «Неделя Один»? На данный момент вы устанавливаете его на «C», но в разделе кода, которое никогда не будет достигнуто, вы затем установите его в «N». – YowE3K

+0

@pnuts, потому что у меня есть отладка на линии If OnetimeOption.value = True Затем – Luis

ответ

1

Я бы написал это по-другому, если оба варианта выбора используются одним и тем же набором значений. Но они этого не делают. Я бы, однако, объединил случаи, которые имеют одинаковый результат.

If OnetimeOption.Value = True Then 

    Select Case MonthComboBox.Value 
     Case "Week One" 
      iCol = "C" 
     Case "Week Two" 
      iCol = "N" 
     Case "Week Three" 
      iCol = "O" 
     Case "Week 4" 
      iCol = "P" 
     Case "Week 5", "Week 6", "One Month" 
      iCol = "Q" 
    End Select 

Else 
    nExtend = 1 'Set this as a default. 
    Select Case MonthComboBox.Value 
     Case "Week One" 
      iCol = "C" 
     Case "Week One" 
      iCol = "N" 
      nExtend = 4 
     Case "Current Month +2" 
      iCol = "O" 
      nExtend = 3 
     Case "Current Month +3" 
      iCol = "P" 
      nExtend = 2 
     Case "Current Month +4" 
      iCol = "Q" 
    End Select 

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