Страницы: 1 2 След.
RSS
Пакетное переименование строк в определенном столбце.
 
Не нашел поиском,хотя уверен,что такой простой вопрос уже обсуждался и решение уже есть.  
суть дела;  
Подскажите пожалуйста,как  и чем можно пакетно переименовать фразы,добавив к каждому названию ".html" и заменив пробелы на нижнее подчеркивание или дефис.,т.е вместо "push-up with Gel-Curve" должно "быть push-up_with_Gel-Curve.html"  
Есть ли такая возможность в Экселе,или может какой другой программкой.  
В гугле не смог найти ответа,поэтому задаю здесь.
 
строки поиска: "заменить символ", "сцепить строки" :)  
 
=СЦЕПИТЬ(ПОДСТАВИТЬ(A1;" ";"_");".html")
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
ikki, если "переименовать", то, наверное, на месте? :-) Что скажет автор?
 
у меня куча вопросов к автору - где находятся "фразы", нет ли в них символов, недопустимых в именах файлов и т.д., и т.п. :)  
но... угадывать неохота.
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
{quote}{login=ikki}{date=22.04.2011 08:38}{thema=}{post}у меня куча вопросов к автору - где находятся "фразы", нет ли в них символов, недопустимых в именах файлов и т.д., и т.п. :) но... угадывать неохота.{/post}{/quote}  
Согласен.  
filosof, Вы бы уточнили - нужно формулами, макросом, где у Вас эти данные. Может небольшой файл покажете?
 
что-то не получается,переименовывается только одна ячейка.  
Что значит "на месте" - не понял..  
Я чайник в экселе,мне бы чем проще ,тем лучше.  
Прикрепляю небольшой файлик для образца,нужен столбец К
 
.....запаковал.
 
{quote}{login=filosof}{date=22.04.2011 08:52}{thema=}{post}Что значит "на месте" - не понял..{/post}{/quote}  
На месте - значит не в ДРУГОМ столбце :-)  
Не видно что-то файла...
 
Вы так и не ответили: Вам нужно в ЭТОМ ЖЕ столбце поменять или можно в отдельном?
 
да в этом же столбце.  
Если в другом,то я просто скопирую весь столбец и подставлю значения.  
Значения в столбце К(должна получится ссылка SEO URL) взяты из столбца А(названия товара).
 
{quote}{login=filosof}{date=22.04.2011 09:01}{thema=}{post}Если в другом,то я просто скопирую весь столбец и подставлю значения.{/post}{/quote}  
Если в другом - см. совет ikki от 22.04.2011, 20:30  
Если в этом - потребуется макрос.
 
а можно полную формулу озвучить для приведенного файла?  
и что нужно наживать после ввода формулы в адресную строку - энтер,пробел или еще что?
 
Для отдельного столбца:  
в ячейку Q2 пишем формулу =СЦЕПИТЬ(ПОДСТАВИТЬ(K2;" ";"_");".html")  
Нажимаем Enter  
Протягиваем до последней строки.
 
спасибо большое за помощь!  
не зря зарегистрировался и обратился.  
жаль,нет возможности добавить репутации..  
п.с. возможно,у меня как у новичка нет возможности редактировать сообщения и еще многих функций форума,а может их и нет вовсе.В общем,если надо привести форум в нормальный вид для нормального общения -обращайтесь,плату не возьму.  
могу сконвертировать на любой движок ,модернизировать,оформить и многое другое.  
(своих форумов - 5 штук на разных движках)
 
Не за что. А помощь свою предложите владельцу Форума. Адрес в разделе "Контакты": <BR>http://www.planetaexcel.ru/contacts.php
 
отправил админу на почту..
 
назрело еще 2 вопроса:  
1)дополнительные картинки товаров для магазина нужно положить в отдельную директорию,для этого в строке нужно записать название директории(путь до нее)  
Используя формулу "сцепить",я сцепляю "bras/" и название картинки.Проблема в том,что не каждая ячейка в столбце имеет название,поэтому в пустые ячейки также записывается "bras/".  
Как удалить ячейки содержащие только "bras/" и ничего более,либо как сцепить,но чтобы пропустить пустые ячейки?  
2)В столбце записаны в каждой ячейке артикулы вида №123-456,т.е 3 цифры до дефиса и 3 после,а перед ними знак № .  
дело в том,что помимо артикула в ячейках очень много HTML мусора,очень разного,поэтому даже после многократного массового поиска и замены,все равно приходится почти каждую ячейку редактировать вручную.  
Есть ли способ,используя вышеописанный шаблон артикула,отсечь ненужный тест из ячеек?
 
созрел ответ по первому.  
В модуль листа скопировать и запустить. Удалит строки, в ячейках которых проживает текст "bras/":    
Sub удалить()  
For Each a In UsedRange  
If a = "bras/" Then  
Rows(a.Row).Delete Shift:=xlUp  
End If  
Next  
End Sub  
Созрели уточнения по второму. В ячейках текст всегда начинается с артикула? И длина артикула всегда 8 знаков?
 
по второму;  
да,всегда восемь знаков  
нет,может быть в любом месте (в начале ,в конце,в середине)  
по первому:  
ниииче не понял,как и где запускать...?
 
в предыдущем сообщении скопировать строки от Sub удалить() включая строку End Sub  
правый клик мыши на ярлыке листа (который содержит текст "bras/") - исходный текст (попадаем в редактор VBA)- вставить.  
Вверху редактора есть кнопка "Ran sub". Жмём её. На указанном выше листе книги excel созерцаем результат работы sub удалить().
 
Вариант по второму..  
Sub Исправить()  
Dim n As Integer  
For Each a In UsedRange  
If a Like "*???-???*" Then  
n = WorksheetFunction.Search("???-???", a)  
a.Value = Mid(a, n, 7)  
End If  
Next  
End Sub
 
по первому:  
удаляет всю строку,в которой есть ячейка в которой содержится только "bras/"  
,т.е есть из 500 строк осталось  менее ста.Нужно,чтобы удаляло именно ячейку(очищало содержимое),а не всю строку.  
по второму:  
работает,но также удаляет содержимое других столбцов(название и описание),в которых содержится текст ,имеющий дефис.,т.е вместо текста в ячейке остается    
ав - ав    
как вариант,редактировать столбец на отдельном листе,но в самих ячейках этого столбца,помимо артикула,также может содержаться текст с дефисом.  
файлик прикрепляю  
(первый лист - почищенные вручную артикулы и цены,а также со словом "bras/" ,остальные исходники)  
<EM><STRONG>Файл удален</STRONG> - велик размер - [<STRONG>МОДЕРАТОРЫ</STRONG>]</EM>
 
Тогда так..  
Sub Исправить()  
Dim n As Integer  
For Each a In UsedRange  
If a Like "*#???-???*" Then  
n = WorksheetFunction.Search("#???-???", a)  
a.Value = Mid(a, n, 7)  
End If  
Next  
End Sub
 
Ошибка, не проверид.
 
Поиогите, не знаю как в шаблоне # оформить )
 
да,я так тоже пробовал - выдает ошибку.  
может можно сделать ,чтоб эта функция действовала только в определенном столбце?
 
filosof, а в определенном столбце -это какой лист,столбец ..?
 
{quote}{login=}{date=25.05.2011 07:00}{thema=}{post}Поиогите, не знаю как в шаблоне # оформить ){/post}{/quote}  
 
имеется в виду - любая цифра?  
пробуем:  
 
If a Like "*[0-9]???-???*" Then
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Спасибо, ikki..Нет у него строки типа gfgfhg#234-678ghjhk
 
сорри, это я попутал  
# в Like как раз и означает любую цифру.  
т.е. это получились идентичные маски.  
 
сходил в справку...  
 
"Note   To match the special characters left bracket ([), question mark (?), number sign (#), and asterisk (*), enclose them in brackets. "
 
моих познаний в английском вроде б хватило вот на это:  
If a Like "*[#]???-???*" Then
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
Страницы: 1 2 След.
Читают тему
Наверх