Страницы: 1
RSS
Макрос на замену порядка слов
 
Добрый день всем!  
 
Уже давно этот форум радует меня всевозможными ответами по использованию excel, спасибо вам, что вы есть! Но вот подошла необходимость и самому поучаствовать в обсуждениях, буду рад помощи)    
 
У меня есть таблица с огромным количеством (несколько тысяч) названий, в которых местами перепутаны слова. Я хотел бы написать макрос, который бы менял слова местами. Посколько макросы никогда не писал, столкнулся с проблемой: для одной ячейки написать было несложно, но вот сделать так, чтобы макрос применялся к любой другой ячейке, на которую я покажу - не получается.  
 
Что я делаю в макросе - применяю "текст по столбцам" для необходимой ячейки, а потом просто в нужном порядке копирую слова из получившихся ячеек в изначальную.  
Я бы хотел, чтобы макрос не был привязан к конкретным ячейкам. Я бы хотел, чтобы он работал, исходя из того, какая ячейка выбрана Сейчас.  
Я так понимаю, здесь "Destination:=Range("D366")" нужно как-то написать "текущая ячейка", а также потом когда произошла разбивка на ячейки, не привязывать макрос к конкретным ссылкам...  
 
 
 
Sub ThreeWords()  
'  
' ThreeWords Макрос  
' замена порядка слов  
'  
' Сочетания клавиш: Ctrl+q  
'  
   Selection.TextToColumns Destination:=Range("D366"), DataType:=xlDelimited, _  
       TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, _  
       Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo _  
       :=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1)), TrailingMinusNumbers:= _  
       True  
   Range("F366").Select  
   ActiveCell.FormulaR1C1 = "Andrea"  
   Range("D366").Select  
   ActiveCell.FormulaR1C1 = "Via Andrea"  
   Range("E366").Select  
   ActiveCell.FormulaR1C1 = "Brustolon"  
   Range("D366").Select  
   ActiveCell.FormulaR1C1 = "Via Andrea Brustolon "  
   Range("G366").Select  
   ActiveCell.FormulaR1C1 = "(Padova)"  
   Range("D366").Select  
   ActiveCell.FormulaR1C1 = "Via Andrea Brustolon (Padova)"  
   Range("E366:G366").Select  
   Selection.ClearContents  
End Sub  
 
 
Помогите, пожалуйста!    
Большое заранее спасибо)
 
{quote}{login=desprit}{date=11.06.2012 12:10}{thema=Макрос на замену порядка слов}{post}... Посколько макросы никогда не писал, столкнулся с проблемой...{/post}{/quote}  
Как вариант: найти нормальную (международную, русофицированную типа Компаса) базу данных и из нее выбрать необходимые данные, или же по ней поправить свои наименования по их частичному совпадению... В "Форум" - "Копилка..." есть ВПР по выбираемому процентному совпадению, загляните... ;) -89469-
 
Дело в том, что у меня встречаются несколько типов ошибок в названии. Как пример я привел название из 4 слов, в котором местами перепутаны 2 и 3. Таких ошибок около 20% из всех. Есть еще 3-4 вида часто встречающихся ошибок. Я описал самый простой вариант, чтобы на его примере понять, как должен быть написан макрос, а потом уже сам доработаю с более сложными вариантами.    
Полностью автоматизировать процесс я не смогу, но хотя бы буду иметь несколько макросов и нажимать их в зависимости от того, какое исправление мне необходимо.    
И, к сожаление, вариант с БД тоже никак. Как только мы начинаем иметь дело с югом Европы, все БД летят к чертям =) Ничего "нормального" здесь просто нет =(
Страницы: 1
Читают тему
Наверх