Форум программистов, компьютерный форум, киберфорум
Наши страницы
VBA
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
lamer987
0 / 0 / 0
Регистрация: 12.04.2019
Сообщений: 7
1

Формула "сцепить" макросом

13.04.2019, 02:19. Просмотров 534. Ответов 2
Метки нет (Все метки)

имеется таблица(см пример) т.к. в таблице может быть разное количество столбцов то необходимо выбрать диапазон таблицы, и далее на лист 2в столбец результат поместить формулу =СЦЕПИТЬ($B$1&": ";B4&":";$C$1&": ";C4&"; ";$D$1&": "4&"; ";$E$1&": ";E4&"; ";$F$1&": ";F4&"; ";$J$1&": ";J4&"; ") которая тянет данные с листа1
закрепленые ячейки это заголовки исходной таблицы. Теперь в чем возник вопрос : можно ли сделать так чтобы те ячейки которые надо закрепить можно было выбрать с помощью макроса чтобы в ручную не составлять формулу и также выбрать в ручную первые аргументы которые не закрепляюся. дальше просто протянуть формулу по всем строкам. также необходимо добавить ": " после закрепленных ячеек и "; " после незакрепленных. в ручную приходится заходить через Fx в формулу и добавлять закреплять проставлять : и ;
также столкнулся с траблом что если есть объединеная ячейка например адрес 1 то когда я протягиваю формулу то вторая строка не подтягивает значение "адрес1" обратите внимание на вторую сформированную с помощью формулы строку (ячейка l5 там пропущено значение "адрес1"

также есть условие что таблиц может быть несколько поэтому получается что запрос диапазона на который будет применяться формула нужно будет включать в ручную с помощью кнопки

заранее благодарен
0
Вложения
Тип файла: xlsx сцепить1.xlsx (12.8 Кб, 4 просмотров)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.04.2019, 02:19
Ответы с готовыми решениями:

При открытие файла csv макросом меняет формат столбца с "общий" на "числовой"
Здравствуйте! Подскажите, пожалуйста. Нужно макросом открыть файл csv. При открытии вручную все...

Как в msgbox добавить результат функции "сцепить"?
Здравствуйте, как сделать вывод информации в msgbox (или типа этого) результата ф-ции "сцепить"...

Как Макросом изменить в формулах "ОКРУГЛ" на "=ОКРУГЛ"
Здравствуйте форумчане! Возникла потребность в следующем: С помощью макроса изменить в диапазоне...

Макросом скопировать текст от "https" до закрывающей скобки
нужно пересохранить мелкие принтскрины из-под ката в оригинальный размер открываю код страницы,...

Отмена автопротягивания формулы в "Умной таблице" макросом
Добрый день, уважаемые форумчане. Возник вопрос, и я даже не знаю как к нему подступится. В...

2
Hugo121
6436 / 2497 / 447
Регистрация: 19.10.2012
Сообщений: 7,459
13.04.2019, 19:53 2
Добрый день.
Я думаю удобнее применять UDF, например такую:
Visual Basic
1
2
3
4
5
6
7
8
Function СцепитьЛамер(r1, r2)
    Dim i&, s$
    r1 = r1: r2 = r2
    For i = 1 To UBound(r1, 2)
        s = s & r1(1, i) & ":" & r2(1, i) & ";"
    Next
    СцепитьЛамер = s
End Function
Указываете в параметрах два неразрывных диапазона, первый закрепляете - работы минимум..
Но работает как уже указал только с одинаковыми и неразрывными, т.е. лишние столбцы нужно удалить.
Ну и как много и всюду пишут - объединение ячеек - зло, с этим боритесь вручную. Например можно всё это объединение заполнить значениями, но вручную. Ну или прописывайте борьбу в UDF, но если неизвестно в каком именно столбце бороться - то беда, даже думать над алгоритмом неохота...
0
Казанский
14905 / 6308 / 1719
Регистрация: 24.09.2011
Сообщений: 9,977
13.04.2019, 22:40 3
lamer987, с объединенными ячейками во втором диапазоне можно побороться так
Visual Basic
1
2
3
4
5
6
7
Function СцепитьЛамер(r1 As Range, r2 As Range)
    Dim i&, s$
    For i = 1 To r1.Count
        s = s & r1(1, i) & ": " & r2(1, i).MergeArea(1) & "; "
    Next
    СцепитьЛамер = s
End Function
Можно сцепить непрерывные диапазоны
Код
=СцепитьЛамер($B$1:$F$1;B4:F4)
, а стоимость прицепить "вручную" как в сущ. формуле.
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.04.2019, 22:40

Удаление строк из "умной таблицы" макросом
Здравствуйте, уважаемые Ассы VBA! Столкнулся с проблемой удаления строк из таблицы на листах с...

Сверка ячеек с "одинаковым" текстом макросом
Можно ли в Екселе сверить текст типа: "Яблочный сок с мякотью" и "Сок яблочный с мякотью" и найти...

Макросом сцепить значения из ячеек и удалить пустые строки
Такая вот проблема: Есть данные: А B C D 1 text text text text ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.