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

Добавка в ячейку слов - в определенном порядке, ориентируясь на другую ячейку

16.02.2019, 06:45. Показов 1461. Ответов 19
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день, господа.
Помогите разобраться с непростым вопросом.

В ячейку "D9" записан текст:
текст(❶❷❸❹❺❻❼❽❾❿ ❶❶ ❶❷ ❶❸ ❶❹ ❶❺ ❶❻ )

В ячейку "F14" вписан текст:
"второй4+седьмой2+четвертый1+десятый1"

В диапазон G3:U3 вписаны слова "первый", "второй", "третий" и т.д. по возрастанию.
И под некоторыми ячейками этого диапазона - находится текст.

Как переместить текст из диапазона G4:U4 - в ячейку D9 - в том порядке, в каком стоят ключевые слова в ячейке F14 ?
То есть - сперва должен идти элемент текста под ячейкой с текстом "второй", затем элемент текста который находится по ячейкой с текстом "седьмой", затем текст под ячейкой "Четвертый", затем текст под ячейкой "десятый".

В результате должен получиться результат:
"текст(❶tyu5 try7❷5h❸fj!-4❹5463❺❻❼❽❾❿ ❶❶ ❶❷ ❶❸ ❶❹ ❶❺ ❶❻ )"
Вложения
Тип файла: xls книга1.xls (80.5 Кб, 8 просмотров)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.02.2019, 06:45
Ответы с готовыми решениями:

Перенос части слов в другую ячейку
Здравствуйте форумчане! Очень нужна ваша помощь! Задача следующая: Имеется список слов в...

В ячейку записать дату, если в другую ячейку ввели "+"
Добрый день! Помогите разобраться с Workbook_SheetChange Необходимо чтобы ,при введении в ячейку...

Определить последнюю ячейку в таблице в определенном столбце
Здравствуйте. Подскажите как макросом сделать следующее: Из нескольких файлов формируется таблица....

Задача: Закрепить ячейку вывода в определенном диапазоне
Добрый день, сегодня начал "работать" в VBA и у меня вопрос: Если у нас есть таблица и сверху...

19
35 / 30 / 6
Регистрация: 21.08.2015
Сообщений: 121
16.02.2019, 09:35 2
Привет!

В ячейке D9 между цифрами нет пробелов, а между числами есть - это тормозит поток решения ...
0
12 / 0 / 0
Регистрация: 25.04.2018
Сообщений: 62
16.02.2019, 10:14  [ТС] 3
tmash, и что делать ?
0
11508 / 3794 / 681
Регистрация: 13.02.2009
Сообщений: 11,197
16.02.2019, 11:11 4
В ячейке D9 между цифрами нет пробелов
Там вообще цифр нет!
Изображения
 
0
11508 / 3794 / 681
Регистрация: 13.02.2009
Сообщений: 11,197
16.02.2019, 11:17 5
"второй4+седьмой2+четвертый1+десятый1"
Какую функцию выполняют тут цифры? Вроде нигде не используются
0
35 / 30 / 6
Регистрация: 21.08.2015
Сообщений: 121
16.02.2019, 11:18 6
Цитата Сообщение от Snegovik2 Посмотреть сообщение
что делать ?
Спасибо за вопрос - почувствовал себя Чернышевским :-)
Произвести объектную декомпозицию задачи и вопросы про объекты-артефакты подкладывать их в форум.
0
12 / 0 / 0
Регистрация: 25.04.2018
Сообщений: 62
16.02.2019, 11:26  [ТС] 7
Цитата Сообщение от Alex77755 Посмотреть сообщение
Какую функцию выполняют тут цифры?
Вот смотрите.
Этот текст "второй4+седьмой2+четвертый1+десятый1" - описывает порядок расположения слов.
Какое слово идет первым, какое слово должно идти вторым, какое третьим, а какое четвертым.
Цифры здесь остались от другого макроса - который выравнивает эти слова - по величине числа, стоящего рядом со словом.

Текст "второй4" - имеет число 4, которое здесь самое большое - и поэтому слово стоит первым.
А вот текст "седьмой2" - уже имеет число 2 - которое второе по величине - и поэтому слово идет вторым.

То есть эта строчка - "второй4+седьмой2+четвертый1+десятый1" - определяет порядок расположения слов.
0
11508 / 3794 / 681
Регистрация: 13.02.2009
Сообщений: 11,197
16.02.2019, 12:23 8
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Sub qwert()
    Dim sl: Set sl = CreateObject("Scripting.Dictionary")
    s = [g3..u4].Value
    For i = 1 To UBound(s, 2)
        t = s(2, i)
        If Len(t) > 0 Then
            sl(s(1, i)) = t
        End If
    Next i
    f = [f14]
    For i = 0 To 9
        f = Replace(f, i, "")
    Next i
    s = Split(f, "+")
    ss = [d9].Value
    
    i = 0
    k = 0
    Do
        i = i + 1
     
        If i >= Len(ss) Then Exit Do
        j = Mid(ss, i, 1)
        t = AscW(j)
        If t > 10100 Then
            tt = sl(s(k))
            ss = Left(ss, i) & tt & Mid(ss, i + 1)
        Debug.Print Len(ss), ss
            k = k + 1
            If k > UBound(s) Then Exit Do
        End If
    Loop
    [d22] = ss
End Sub
Добавлено через 2 минуты
на этом сайте какой-то глюк: я не могу просмотреть часть своего сообщения скрытого спойлером (+)

Добавлено через 53 секунды
Убрал тег спойлера
0
12 / 0 / 0
Регистрация: 25.04.2018
Сообщений: 62
16.02.2019, 12:48  [ТС] 9
Alex77755, почему-то не работает для количества слов больше 10.
То есть для текста "второй4+седьмой2+четвертый1+десятый1+первый1+третий1+пятый1+шестой1+восьмой1+од инадцатый1+двенадцатый1"

Выдает результат:
текст(❶tyu5 try7❷5h❸fj!-4❹5463❺1❻1❼1❽1❾1❿1 ❶1❶ ❶❷ ❶❸ ❶❹ ❶❺ ❶❻ )

Хотя на 11 отметке должно быть
текст(❶tyu5 try7❷5h❸fj!-4❹5463❺1❻1❼1❽1❾1❿1 ❶❶1 ❶❷ ❶❸ ❶❹ ❶❺ ❶❻ )
Вложения
Тип файла: xls книга1(2).xls (93.0 Кб, 4 просмотров)
0
11508 / 3794 / 681
Регистрация: 13.02.2009
Сообщений: 11,197
16.02.2019, 14:17 10
Хотя на 11 отметке должно быть
Это ещё почему?
Все значения вставляются после картинки с цифрой
Миниатюры
Добавка в ячейку слов - в определенном порядке, ориентируясь на другую ячейку  
0
11508 / 3794 / 681
Регистрация: 13.02.2009
Сообщений: 11,197
16.02.2019, 14:24 11
что бы не путаться скопировал значения
Миниатюры
Добавка в ячейку слов - в определенном порядке, ориентируясь на другую ячейку  
0
12 / 0 / 0
Регистрация: 25.04.2018
Сообщений: 62
16.02.2019, 14:26  [ТС] 12
Alex77755, ну там же - видите - поскольку нет одиночного символа одиннадцати ❿, то такой одиночный символ - заменен двумя символами ❶❶ - как имитация "11".
Потому что по-другому не получается написать.

Можно как-то задать в вашем макросе условие - что если слов больше десяти, то нужно вставлять текст от десятого слова и выше - не после одного символа ❶, а после двух символов - навроде ❶❶ ?
0
11508 / 3794 / 681
Регистрация: 13.02.2009
Сообщений: 11,197
16.02.2019, 14:26 13
Цитата Сообщение от Snegovik2 Посмотреть сообщение
❶❶
Это не 11
Это просто 2 символа
0
12 / 0 / 0
Регистрация: 25.04.2018
Сообщений: 62
16.02.2019, 14:26  [ТС] 14
Alex77755, ну там же - видите - поскольку нет одиночного символа одиннадцати ❿, то такой одиночный символ - заменен двумя символами ❶❶ - как имитация "11".
Потому что по-другому не получается написать.

Можно как-то задать в вашем макросе условие - что если слов больше десяти, то нужно вставлять текст от десятого слова и выше - не после одного символа ❶, а после двух символов - навроде ❶❶ ?
0
11508 / 3794 / 681
Регистрация: 13.02.2009
Сообщений: 11,197
16.02.2019, 14:28 15
Можно как-то задать в вашем макросе условие?
Можно! задавайте! Я не возражаю!
0
12 / 0 / 0
Регистрация: 25.04.2018
Сообщений: 62
16.02.2019, 14:39  [ТС] 16
Alex77755, а как это сделать ?
0
11508 / 3794 / 681
Регистрация: 13.02.2009
Сообщений: 11,197
16.02.2019, 14:44 17
Условие задаётся оператором if
0
12 / 0 / 0
Регистрация: 25.04.2018
Сообщений: 62
16.02.2019, 14:47  [ТС] 18
Alex77755, а в макросе его куда поставить ?
0
11508 / 3794 / 681
Регистрация: 13.02.2009
Сообщений: 11,197
16.02.2019, 14:55 19
Лучший ответ Сообщение было отмечено Snegovik2 как решение

Решение

в нужное место. Перед формированием (вставкой блока символов) строки
Вложения
Тип файла: rar книга2(2).rar (33.3 Кб, 6 просмотров)
1
12 / 0 / 0
Регистрация: 25.04.2018
Сообщений: 62
16.02.2019, 15:05  [ТС] 20
Alex77755, вот теперь - просто все именно так как нужно.
Огромное вам спасибо.

Вы действительно - выдающийся программист нашей эпохи !
0
16.02.2019, 15:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.02.2019, 15:05
Помогаю со студенческими работами здесь

Определить предпоследнюю ячейку с не нулевым значением в определённом диапазоне
Нужна формула которая определит предпоследнюю ячейку с не нулевым значение в определённом диапазоне...

Как залить ячейку в Exel при определенном условии
Доброе утро, ребята опять к вам за помощью. Для меня оказалось сложной задачей, хотя...

Вывод значения в ячейку при определенном условии в другой ячейке
Ячейка А1 должна выводить значение "a" при ячейке B1 = "1" либо "2", значение "b" при "3" либо...

Как можно из выделенного столбца каждую вторую ячейку перенести на столбец вправо и на ячейку вверх?
До вчерашнего дня ни VBA ни excel-ными макросами не интересовался, да и не надо было, а вот...


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

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