Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
0 / 0 / 0
Регистрация: 26.05.2013
Сообщений: 4
1

Как разбить строку на отдельные слова и вывести их в столбец А активного рабочего листа в порядке возрастания их длины

03.06.2013, 16:36. Показов 3764. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дана строка символов,разделенных пробелами.Разбить строку на отдельные слова и вывести их в столбец А активного рабочего листа в порядке возрастания их длины(VBA)...помогите пожалуйста((((((
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.06.2013, 16:36
Ответы с готовыми решениями:

Разбить строку, введённую в первую ячейку первого столбца активного листа, на слова
Задали следующее задание: 1я часть: Разбить строку, введённую в первую ячейку первого столбца...

Разбить строку, введённую в первую ячейку первого столбца активного листа, на слова
Общая часть задания Разбить строку, введённую в первую ячейку первого столбца активного листа, на...

Разбить строку, введённую в первую ячейку первого столбца активного листа, на слова
Помогите-помогите! Пожалуйста.... Нужно разбить строку, введённую в первую ячейку первого столбца...

Преобразовать строку, расположив слова в порядке возрастания их длины
Дана строка символов. Группы символов, разделенные одним или несколькими пробелами и не содержащие...

5
693 / 99 / 10
Регистрация: 25.06.2011
Сообщений: 718
03.06.2013, 16:48 2
Цитата Сообщение от 2233 Посмотреть сообщение
Дана строка символов,разделенных пробелами.Разбить строку на отдельные слова
Visual Basic
1
 t=split("Дана строка символов", " ")
Добавлено через 2 минуты
Цитата Сообщение от 2233 Посмотреть сообщение
их длинны
длину можна узнaть
Visual Basic
1
  k= Len(t(0))
Добавлено через 49 секунд
Цитата Сообщение от 2233 Посмотреть сообщение
вывести их в столбец А активного рабочего листа
ну а дальше попробуй сам....
1
0 / 0 / 0
Регистрация: 26.05.2013
Сообщений: 4
05.06.2013, 14:13  [ТС] 3
спасибо большое!))
0
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
05.06.2013, 14:58 4
Длину приклеить слева к слову в формате "000", слова поместить в массив, созданный по количеству слов (уже известно).
Массив отсортировать, циклом выгрузить на лист, отрезая номера.
Или сперва выгрузить, затем отсортировать на листе, отрезать номера.
Или слова с номерами (отдельно) поместить в двумерный массив (номера правее), его отсортировать по номерам, выгрузить на лист только слова (без цикла). Это самое техничное и быстрое решение, но сложнее организовать сортировку (хотя ненамного, просто пример такой сортировки найти сложнее).
Вообще кажется интересная задача - вроде с виду простая, а чтоб сделать - нужно много чего знать.
Или я усложняю?
1
693 / 99 / 10
Регистрация: 25.06.2011
Сообщений: 718
05.06.2013, 15:08 5
Цитата Сообщение от Hugo121 Посмотреть сообщение
кажется интересная задача - вроде с виду простая, а чтоб сделать - нужно много чего знать.
согласен
0
3218 / 967 / 223
Регистрация: 29.05.2010
Сообщений: 2,086
05.06.2013, 19:58 6
Лучший ответ Сообщение было отмечено как решение

Решение

Можно сбросить массив на лист, определить длину каждого слова и отсортировать средствами Excel, потом собрать строку обратно:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sub besbyblik()
    Dim v
    v = Split(InputBox("Ââåäèòå ñòðîêó"))
    Application.ScreenUpdating = False
    With Workbooks.Add(xlWBATWorksheet)
        Cells(1, 1).Resize(UBound(v) + 1).Value = WorksheetFunction.Transpose(v)
        Cells(1, 2).Resize(UBound(v) + 1).Formula = "=LEN(A1)"
        [B1].Sort [B1], xlAscending, Header:=xlNo
        v = Join(WorksheetFunction.Transpose(Cells(1, 1).Resize(UBound(v) + 1).Value))
        .Close 0
    End With
    Application.ScreenUpdating = True
    MsgBox v
End Sub
0
05.06.2013, 19:58
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.06.2013, 19:58
Помогаю со студенческими работами здесь

Переписать в выходную строку слова из входной строки в порядке возрастания их длины
.Пожалуйста помогите решить задачу Срочно нужно было Переписать в выходную строку слова из...

Переписать в выходную строку слова из входной строки в порядке возрастания их длины.
Помогите с решенеие кому не сложно в Visual C++, пожалуйста. 1. Интервал между минимальным и...

Дана строка, вывести слова наименьшей длины в порядке возрастания
Здравствуйте! Помогите, пожалуйста, с программой: дана строка, вывести слова наименьшей длины в...

Вывести слова на печать в порядке возрастания их общей длины в предложении
Строки. Дано N предложений, слова в которых разделены пробелами. Вывести их на печать в порядке...

Определить, какие слова из текста имеют длину от 1 до 10, и вывести их в порядке возрастания длины
Определить сколько слов текста имеют длину 1, 2, 3, ... 10 символов. Вывести эти слова в...

Рассчитать и вывести в столбце В активного рабочего листа значения функции
Здравствуйте=))) Помоги пожалуйста решить задачки, я совсем Visual Basic не понимаю =((( Плизззз...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru