Страницы: 1
RSS
Формула изменения текста автофигуры макросом
 
Добрый день, уважаемые форумчане!

Есть загружаемый файл Excel с автофигурами,каждый день файл содержит информацию по разным менеджерам(может быть много), фирмам с разным количеством автофигур(может быть несколько сотен), с разной информацией в каждой автофигуре.В модуле сумел написать макрос, который перебирает все автофигуры на листе, из каждой автофигуры вытаскивает текст в ячейку за ней, сцепляет с информацией из определённой ячейки с информацией по фирме,номеру заказа, количеству и возвращает информацию в ту же автофигуру. Но Вопрос вот в чём - В каждой автофигуре есть "бесполезная информация" и очень много ненужных пробелов, от которых необходимо избавиться.Реализовал формулу из комбинации СЖПРОБЕЛЫ,ЛЕВСИМВ и ПОИСК).Она работает так, как мне надо, но мне необходимо реализовать её к каждой автофигуре(а их может быть несколько сотен).И у меня не получается это сделать т.е. чтобы "Как есть" превращалось автоматически в "Как хочется". :sceptic: Отдельно в файле есть лист "Как хочется сделать".В макросах не силён.Тот,что написал - методом тыка)))Помогите, пожалуйста, или хотя бы дайте направление, я сам дотыкаюсь :)  Файл во вложении.Заранее спасибо!
 
Для сведения: текст в автофигуре можно получить напрямую из ячейки (где предварительно формулой будут получены нужные данные): выделяем автофигуру, в строке формул пишем символ равно "=" и мышкой кликаем по нужной ячейке.
 
Stranded, по какому признаку понять, что информация является бесполезной?
 
Трудно сказать,Число знаков в "бесполезной информации" может быть разное и может содержать цифры,разное количество пробелов.Я пытался реализовать формулу которая делает как раз то,что мне нужно =СЖПРОБЕЛЫ(ЛЕВСИМВ("Перебираемая ячейка за автофигурой";ПОИСК("(";"Перебираемая ячейка за автофигурой";1)-1)) в теле макроса, но применяя адрес ячейки как раз во время перебора автофигур методом Range() или Cells(), но выдает ошибку. Не смог понять как вычислить формулу в самом макросе. Вставлять формулу каждый раз в определённую ячейку - это очень долго,поскольку автофигур из которых извлекается информация - сотни...
 
Напишите, по какому признаку найти бесполезную информацию. Или опишите, какие действия должен сделать макрос с текстом в автофигуре до добавления новых данных.
PS. Кнопку "Цитировать" не обязательно нажимать, чтобы ответить на форуме. Цитировать нужно какой-то фрагмент поста. Если хотите обратиться к кому-то, то просто пишите ник.
Изменено: Karataev - 02.02.2017 13:51:17
 
Цитата
Юрий М написал:
Для сведения: текст в автофигуре можно получить напрямую из ячейки (где предварительно формулой будут получены нужные данные): выделяем автофигуру, в строке формул пишем символ равно "=" и мышкой кликаем по нужной ячейке.
Я знаю, но как это реализовать, если ячейка на которую будет ссылаться автофигура, после работы макроса может скакать в диапазоне от 5-й до 50 строчки каждого отдельно взятого столбца? К сожалению нет определённой ячейки куда я мог бы вставлять информацию из автофигуры потом изменить её и вставить обратно в автофигуру, поскольку в одном столбце может быть 2 автофигуры, а в другом 3 или 4 или 5 или все 10... :oops:
 
Karataev,Спасибо.Я просто редко пишу в форумах,не во всех кнопках разбираюсь.После символа открывающая скобка  (  начинается бесполезная информация.
 
В этом макросе данные из автофигуры не копируются в ячейку, над которой находится автофигура.
Макрос
Изменено: Karataev - 02.02.2017 14:10:09
 
Karataev,Спасибо огромное! :) Формулу сцепки добавил и поменял разделитель Chr(10) на Chr(6).Всё работает отлично.Проблема решена.
Изменено: Stranded - 02.02.2017 14:31:32
 
Вместо Chr(6) разумнее использовать Chr(150) (короткое тире) или Chr(151) (длинное тире).
Иначе может быть путаница или еще что-нибудь, если в тексте будут спецсимволы.
Chr(6) в таблице юникода означает "Подтверждение у телетайпа".
 
Karataev,Ну это уже частности,скорее всего поставлю слэш. Спасибо большое еще раз!
Страницы: 1
Наверх