Добрый день всем!
Уже давно этот форум радует меня всевозможными ответами по использованию 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
Помогите, пожалуйста!
Большое заранее спасибо)
Уже давно этот форум радует меня всевозможными ответами по использованию 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
Помогите, пожалуйста!
Большое заранее спасибо)