Здравствуйте, имеется столбец А содержащий числовые, текстовые данные и пустые ячейки(30 строк). В столбец С вытягиваются данные из А какой-либо формулой, причём опять таки есть пустые ячейки.
Задача: с помощью макроса скопировать данные из столбца С и вставить в столбец D уже значения, а не формулы и отсортировать их по алфавиту(возрастанию), пустые ячейки либо не копировать, либо чтобы после сортировки они оказывались в конце списка. Всё это автоматически без надобности нажимать какую-либо клавишу.
Заранее спасибо!
Здравствуйте, имеется столбец А содержащий числовые, текстовые данные и пустые ячейки(30 строк). В столбец С вытягиваются данные из А какой-либо формулой, причём опять таки есть пустые ячейки.
Задача: с помощью макроса скопировать данные из столбца С и вставить в столбец D уже значения, а не формулы и отсортировать их по алфавиту(возрастанию), пустые ячейки либо не копировать, либо чтобы после сортировки они оказывались в конце списка. Всё это автоматически без надобности нажимать какую-либо клавишу.
Интересно, а как по Вашему должен в таком случае запуститься макрос? Силой мысли, что ли?;)
[vba]
Код
Sub arturik() Dim c As Range Range("c1:c30").Copy Range("d1:d30").PasteSpecial Paste:=xlPasteValues For Each c In Sheets("Лист1").Range("d1:d30") If c.Value = "" Then c.Clear End If Next c ActiveWorkbook.Worksheets("Лист1").Sort.SortFields.Clear ActiveWorkbook.Worksheets("Лист1").Sort.SortFields.Add Key:=Range("D1"), _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _ xlSortTextAsNumbers With ActiveWorkbook.Worksheets("Лист1").Sort .SetRange Range("D1:D30") .Header = xlGuess .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End Sub
[/vba]
Цитата (arturik)
...без надобности нажимать какую-либо клавишу...
Интересно, а как по Вашему должен в таком случае запуститься макрос? Силой мысли, что ли?;)
[vba]
Код
Sub arturik() Dim c As Range Range("c1:c30").Copy Range("d1:d30").PasteSpecial Paste:=xlPasteValues For Each c In Sheets("Лист1").Range("d1:d30") If c.Value = "" Then c.Clear End If Next c ActiveWorkbook.Worksheets("Лист1").Sort.SortFields.Clear ActiveWorkbook.Worksheets("Лист1").Sort.SortFields.Add Key:=Range("D1"), _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _ xlSortTextAsNumbers With ActiveWorkbook.Worksheets("Лист1").Sort .SetRange Range("D1:D30") .Header = xlGuess .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End Sub