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

Вход

Регистрация

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

 

= Мир MS Excel/Вывести слова по данным позициям - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Вывести слова по данным позициям (Макросы/Sub)
Вывести слова по данным позициям
Alex5975 Дата: Пятница, 20.05.2022, 20:05 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 1
Репутация: 0 ±
Замечаний: 0% ±

Нужно написать макрос. Пользователь задает позицию слов. Вывести слова по данным позициям.
С помощью VBA для exel
 
Ответить
СообщениеНужно написать макрос. Пользователь задает позицию слов. Вывести слова по данным позициям.
С помощью VBA для exel

Автор - Alex5975
Дата добавления - 20.05.2022 в 20:05
NikitaDvorets Дата: Понедельник, 23.05.2022, 13:52 | Сообщение № 2
Группа: Авторы
Ранг: Ветеран
Сообщений: 557
Репутация: 126 ±
Замечаний: 0% ±

Excel 2019
Alex5975, добрый день.
Пример текста, помещенного в файл Excel, повысил бы шансы задачи на её решение.


Сообщение отредактировал NikitaDvorets - Понедельник, 23.05.2022, 13:53
 
Ответить
СообщениеAlex5975, добрый день.
Пример текста, помещенного в файл Excel, повысил бы шансы задачи на её решение.

Автор - NikitaDvorets
Дата добавления - 23.05.2022 в 13:52
jun Дата: Вторник, 24.05.2022, 14:49 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 141
Репутация: 42 ±
Замечаний: 0% ±

Alex5975, приветствую!
Можно например так:
[vba]
Код
Function shuffle_Words(rng As Range, pos_)
Dim items, new_items(), nums
Dim i, j
    nums = Split(pos_)
    items = Split(rng, " ")
    ReDim new_items(0 To UBound(items))
    
    For i = LBound(items) To UBound(items)
        For j = LBound(nums) To UBound(nums)
            If CInt(nums(j)) - 1 = i Then
                new_items(j) = items(i)
            End If
        Next j
    Next i
    shuffle_Words = Join(new_items, " ")
End Function
[/vba]
Первым аргументом функции идет ячейка со словами, вторым - номера слов через пробел (см. файл)
К сообщению приложен файл: 6766074.xlsb (14.2 Kb)
 
Ответить
СообщениеAlex5975, приветствую!
Можно например так:
[vba]
Код
Function shuffle_Words(rng As Range, pos_)
Dim items, new_items(), nums
Dim i, j
    nums = Split(pos_)
    items = Split(rng, " ")
    ReDim new_items(0 To UBound(items))
    
    For i = LBound(items) To UBound(items)
        For j = LBound(nums) To UBound(nums)
            If CInt(nums(j)) - 1 = i Then
                new_items(j) = items(i)
            End If
        Next j
    Next i
    shuffle_Words = Join(new_items, " ")
End Function
[/vba]
Первым аргументом функции идет ячейка со словами, вторым - номера слов через пробел (см. файл)

Автор - jun
Дата добавления - 24.05.2022 в 14:49
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Вывести слова по данным позициям (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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