Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Возможна ли замена Case на работу с массивом - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Возможна ли замена Case на работу с массивом (Макросы/Sub)
Возможна ли замена Case на работу с массивом
ant6729 Дата: Среда, 26.07.2017, 21:58 | Сообщение № 1
Группа: Проверенные
Ранг: Ветеран
Сообщений: 533
Репутация: 2 ±
Замечаний: 40% ±

Excel 2010
Еще раз добрый вечер.. .
Решил задачу вот таким образом:

[vba]
Код

Sub dfdfd ()

s = InputBox("")

Select Case s
Case Is = 1
Cells(1, 9).Value = "3:00:36"
Case Is = 2
Cells(1, 9).Value = "1:52:12"
Case Is = 3
Cells(1, 9).Value = "1:25:12"
Case Is = 4
Cells(1, 9).Value = "1:56:24"
Case Is = 5
Cells(1, 9).Value = "2:36:36"
Case Is = 6
Cells(1, 9).Value = "2:25:48"
Case Is = 7
Cells(1, 9).Value = "2:44:24"
Case Is = 8
Cells(1, 9).Value = "2:58:48"
Case Is = 9
Cells(1, 9).Value = "3:27:00"
Case Is = 10
Cells(1, 9).Value = "3:02:24"
Case Is = 11
Cells(1, 9).Value = "0:24:00"
Case Is = 12
Cells(1, 9).Value = "0:34:12"
Case Is = 13
Cells(1, 9).Value = "0:45:00"
Case Is = 14
Cells(1, 9).Value = "2:45:00"
Case Is = 15
Cells(1, 9).Value = "2:06:00"
Case Is = 16
Cells(1, 9).Value = "2:41:24"
Case Is = 17
Cells(1, 9).Value = "2:41:24"
Case Is = 18
Cells(1, 9).Value = "1:34:12"
Case Is = 19
Cells(1, 9).Value = "1:45:00"
Case Is = 20
Cells(1, 9).Value = "2:18:00"
Case Is = 21
Cells(1, 9).Value = "1:37:48"
Case Is = 22
Cells(1, 9).Value = "2:41:24"
Case Is = 23
Cells(1, 9).Value = "1:27:36"
Case Is = 24
Cells(1, 9).Value = "0:44:24"
Case Is = 25
Cells(1, 9).Value = "1:18:00"
Case Is = 26
Cells(1, 9).Value = "1:20:24"
Case Is = 27
Cells(1, 9).Value = "2:25:12"
Case Is = 28
Cells(1, 9).Value = "2:44:24"
Case Is = 29
Cells(1, 9).Value = "0:23:24"
Case Is = 30
Cells(1, 9).Value = "2:04:12"
Case Is = 31
Cells(1, 9).Value = "0:30:00"
Case Is = 32
Cells(1, 9).Value = "1:28:48"
Case Is = 33
Cells(1, 9).Value = "2:08:24"
Case Is = 34
Cells(1, 9).Value = "2:11:24"
Case Is = 35
Cells(1, 9).Value = "3:01:12"
Case Is = 36
Cells(1, 9).Value = "2:45:00"
Case Is = 37
Cells(1, 9).Value = "1:02:24"
Case Is = 38
Cells(1, 9).Value = "2:49:48"
' и прочее
End Select
End Sub

[/vba]

У меня подозрения на счет записи всего этого через массив... Вроде, что-то видел в других языках...

Но как...

Можно ли как-то иначе оптимизировать эту длину?
VLOOKUP можно, конечно, но не то...
Есть ли какие-то другие варианты, подскажите, пожалуйста.


Сообщение отредактировал ant6729 - Среда, 26.07.2017, 22:34
 
Ответить
СообщениеЕще раз добрый вечер.. .
Решил задачу вот таким образом:

[vba]
Код

Sub dfdfd ()

s = InputBox("")

Select Case s
Case Is = 1
Cells(1, 9).Value = "3:00:36"
Case Is = 2
Cells(1, 9).Value = "1:52:12"
Case Is = 3
Cells(1, 9).Value = "1:25:12"
Case Is = 4
Cells(1, 9).Value = "1:56:24"
Case Is = 5
Cells(1, 9).Value = "2:36:36"
Case Is = 6
Cells(1, 9).Value = "2:25:48"
Case Is = 7
Cells(1, 9).Value = "2:44:24"
Case Is = 8
Cells(1, 9).Value = "2:58:48"
Case Is = 9
Cells(1, 9).Value = "3:27:00"
Case Is = 10
Cells(1, 9).Value = "3:02:24"
Case Is = 11
Cells(1, 9).Value = "0:24:00"
Case Is = 12
Cells(1, 9).Value = "0:34:12"
Case Is = 13
Cells(1, 9).Value = "0:45:00"
Case Is = 14
Cells(1, 9).Value = "2:45:00"
Case Is = 15
Cells(1, 9).Value = "2:06:00"
Case Is = 16
Cells(1, 9).Value = "2:41:24"
Case Is = 17
Cells(1, 9).Value = "2:41:24"
Case Is = 18
Cells(1, 9).Value = "1:34:12"
Case Is = 19
Cells(1, 9).Value = "1:45:00"
Case Is = 20
Cells(1, 9).Value = "2:18:00"
Case Is = 21
Cells(1, 9).Value = "1:37:48"
Case Is = 22
Cells(1, 9).Value = "2:41:24"
Case Is = 23
Cells(1, 9).Value = "1:27:36"
Case Is = 24
Cells(1, 9).Value = "0:44:24"
Case Is = 25
Cells(1, 9).Value = "1:18:00"
Case Is = 26
Cells(1, 9).Value = "1:20:24"
Case Is = 27
Cells(1, 9).Value = "2:25:12"
Case Is = 28
Cells(1, 9).Value = "2:44:24"
Case Is = 29
Cells(1, 9).Value = "0:23:24"
Case Is = 30
Cells(1, 9).Value = "2:04:12"
Case Is = 31
Cells(1, 9).Value = "0:30:00"
Case Is = 32
Cells(1, 9).Value = "1:28:48"
Case Is = 33
Cells(1, 9).Value = "2:08:24"
Case Is = 34
Cells(1, 9).Value = "2:11:24"
Case Is = 35
Cells(1, 9).Value = "3:01:12"
Case Is = 36
Cells(1, 9).Value = "2:45:00"
Case Is = 37
Cells(1, 9).Value = "1:02:24"
Case Is = 38
Cells(1, 9).Value = "2:49:48"
' и прочее
End Select
End Sub

[/vba]

У меня подозрения на счет записи всего этого через массив... Вроде, что-то видел в других языках...

Но как...

Можно ли как-то иначе оптимизировать эту длину?
VLOOKUP можно, конечно, но не то...
Есть ли какие-то другие варианты, подскажите, пожалуйста.

Автор - ant6729
Дата добавления - 26.07.2017 в 21:58
ant6729 Дата: Среда, 26.07.2017, 22:12 | Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 533
Репутация: 2 ±
Замечаний: 40% ±

Excel 2010
Должно быть что-то вроде)

[vba]
Код
s = input

time = Array("2:45:00";"1:02:24";"3:01:12")

Cells(1, 9).Value = индекс (s)
[/vba]

)
.... не знаю


Сообщение отредактировал ant6729 - Среда, 26.07.2017, 22:13
 
Ответить
СообщениеДолжно быть что-то вроде)

[vba]
Код
s = input

time = Array("2:45:00";"1:02:24";"3:01:12")

Cells(1, 9).Value = индекс (s)
[/vba]

)
.... не знаю

Автор - ant6729
Дата добавления - 26.07.2017 в 22:12
Pelena Дата: Среда, 26.07.2017, 22:52 | Сообщение № 3
Группа: Админы
Ранг: Местный житель
Сообщений: 19181
Репутация: 4420 ±
Замечаний: ±

Excel 365 & Mac Excel
что-то вроде

[vba]
Код
Option Base 1

Public Sub tm()
    Dim time()
    s = InputBox("")
    time = Array("2:45:00", "1:02:24", "3:01:12")
    Cells(1, 9).Value = time(Val(s))
End Sub
[/vba]


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщение
что-то вроде

[vba]
Код
Option Base 1

Public Sub tm()
    Dim time()
    s = InputBox("")
    time = Array("2:45:00", "1:02:24", "3:01:12")
    Cells(1, 9).Value = time(Val(s))
End Sub
[/vba]

Автор - Pelena
Дата добавления - 26.07.2017 в 22:52
ant6729 Дата: Среда, 26.07.2017, 22:58 | Сообщение № 4
Группа: Проверенные
Ранг: Ветеран
Сообщений: 533
Репутация: 2 ±
Замечаний: 40% ±

Excel 2010
..Круто...!

Спасибо, Pelena!!!
 
Ответить
Сообщение..Круто...!

Спасибо, Pelena!!!

Автор - ant6729
Дата добавления - 26.07.2017 в 22:58
KuklP Дата: Четверг, 27.07.2017, 06:11 | Сообщение № 5
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Чуть сократил:
[vba]
Код
Public Sub www()
    Cells(1, 9).Value = Choose(InputBox(""), "2:45:00", "1:02:24", "3:01:12")
End Sub
[/vba] B)


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеЧуть сократил:
[vba]
Код
Public Sub www()
    Cells(1, 9).Value = Choose(InputBox(""), "2:45:00", "1:02:24", "3:01:12")
End Sub
[/vba] B)

Автор - KuklP
Дата добавления - 27.07.2017 в 06:11
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Возможна ли замена Case на работу с массивом (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!