Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Функция "Выбор" в Еxcel / 7 сообщений из 7, страница 1 из 1
04.08.2005, 02:15:42
    #33200603
Suleyman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция "Выбор" в Еxcel
Функция "Выбор" в Еxcel работает только от 1 до 29 и не работает с нолем
Кто нибудь знает как расширить предел до 31 и что бы при ноле не писалось #ЗНАЧ!
...
Рейтинг: 0 / 0
04.08.2005, 08:45:19
    #33200727
Функция "Выбор" в Еxcel
Ну чтоб не писалось ЗНАЧ, надо сделать так:

Код: plaintext
1.
=ЕСЛИ(ЕОШИБКА(ВЫБОР(A1;"1-ый";"2-ой";"3-ий";"Последний"));"";
ВЫБОР(A1;"1-ый";"2-ой";"3-ий";"Последний"))
...
Рейтинг: 0 / 0
04.08.2005, 19:38:10
    #33202659
Suleyman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция "Выбор" в Еxcel
Спасибо за решение проблемы с нолем, осталось раздвиниуть предел до 31.
...
Рейтинг: 0 / 0
05.08.2005, 09:06:23
    #33203091
Функция "Выбор" в Еxcel
По-моему, ограничение в 29 элементов не обойти. Можно написать аналог этой функции.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Public Function fctSelection(rngIdx As Range, vatItems As Variant) As Variant
    Dim varArray As Variant
    Dim intI As Integer
    
    varArray = Split(vatItems, ";")
    
    Select Case rngIdx
        Case  0 
            fctSelection = ""
            Exit Function
        Case Is > UBound(varArray) +  1 
            MsgBox "Индекс превышает номер максимального элемента."
            Exit Function
    End Select
    
    fctSelection = varArray(rngIdx -  1 )
End Function

Код: plaintext
=fctSelection(A1;"1-ый;2-ой;3-ий;Последний")
...
Рейтинг: 0 / 0
05.08.2005, 19:10:12
    #33204960
Suleyman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция "Выбор" в Еxcel
Как я понял =fctSelection будет работать так же как и функция Выбор

Кидаю
Public Function fctSelection(rngIdx As Range, vatItems As Variant) As Variant
Dim varArray As Variant
Dim intI As Integer

varArray = Split(vatItems, ";")

Select Case rngIdx
Case 0
fctSelection = ""
Exit Function
Case Is > UBound(varArray) + 1
MsgBox "Индекс превышает номер максимального элемента."
Exit Function
End Select

fctSelection = varArray(rngIdx - 1)
End Function


в модуль, жму ф5, предлагает создать новый макрос, подскажи что делаю не так.
...
Рейтинг: 0 / 0
06.08.2005, 21:49:28
    #33205457
Suleyman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция "Выбор" в Еxcel
Функция работает только до 16-ти, дальше выдает сообщение - "Индекс превышает номер максимального элемента", а если например заменить 1-ый на первый, 15-ый на патнадцатый, то пишет "слишком сложная формула"
=fctSelection(A1;"1-ый;2-ой;3-ий;4-ый;5-ый;6-ой;7-ой;8-ой;9-ый;10-ый;11-ый;12-ый;13-ый;14-ый;15-ый;16-ый") - работает нормально, но не дальше,
Нужно что бы до 31 одного можно было добраться.
Помогите!!!!!!
...
Рейтинг: 0 / 0
28.09.2005, 09:15:44
    #33292304
Функция "Выбор" в Еxcel
Только что проверил:

Код: plaintext
=fctSelection(A25;"1-ый;2-ой;3-ий;4-ый;...;31-ый;32-ой")

Все прекрасно работает.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Функция "Выбор" в Еxcel / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]