Страницы: 1
RSS
Проставить дату в ячейках выделенного, отфильтрованного диапазона
 
Добрый вечер.
Вот такой код у меня есть есть:
Код
Cells(ActiveCell.Row, 3).Select
[ActiveCell] = "=TODAY()"
[ActiveCell] = [ActiveCell]


Подскажите, как его переделать, чтобы работал на выделенном диапазоне (диапазонах).
И с условием, что может быть работающий фильтр (чтобы ставил только в видимых ячейках).
Т.е. чтобы во всех выделенных строках (не важно какой столбец при этом выделен) ставил в 3 столбец дату.
 
Так?
Код
Sub Дата()
For Each ss In Selection.SpecialCells(xlCellTypeVisible)
ss.Value = Date
Next
End Sub
Изменено: sva - 12.07.2013 20:10:57
 
А без цикла?
Код
Sub Test()
    With Selection
        .Cells.Value = Date
    End With
End Sub
 
Роман, а проще(не проверял, но должно работать):
Код
Selection.SpecialCells(12).Value = Date
Я сам - дурнее всякого примера! ...
 
Примерно.
Только дата должна ставиться в ячейки 3-ого столбца во всем выделенном диапазоне.
 
Т.е. неважно, что выделили - всё равно в третий столбец? А сам этот столбец должен попадать в выделение?
 
Код
Intersect(Columns(3), Selection.SpecialCells(12)).Value = Date

а так можно чтоб не попадало:
Код
Intersect(Columns(3), Selection.SpecialCells(12).EntireRow).Value = Date
Изменено: KuklP - 12.07.2013 20:43:26
Я сам - дурнее всякого примера! ...
 
Совершенно не важно какой столбец (столбцы, диапазон, диапазоны) выделен (-ы).
 
KukIP, да что-то я усложняю :)
 
KukIP, спасибо.
Работает.
 
Цитата
lis2109 пишет:
Совершенно не важно какой столбец (столбцы, диапазон, диапазоны) выделен (-ы).
Тогда зачем вообще что-то выделять?
 
Юрий М, я имел ввиду, что к примеру выделены:
A3, D5:D10, F14:G15 (т.е. не важно, что выделено - ячейка или диапазон).
Соответственно по строкам 3, 5-10, 14-15 в столбце "С" проставилась дата.
 
Ясно.
Серж, а можно и без спец. ячеек:
Код
Intersect(Columns(3), Selection.Cells).Value = Date
 
Юр, в разных версиях работает по разному. Когда-то обсуждали. Лучше явно указать.
Я сам - дурнее всякого примера! ...
 
Ну и ладно - я просто из вредности.
 
Добрый день.
Использовав ответ KuklP получил вот такой макрос (это часть кода):

Код
With Selection
Intersect(Columns(3), Selection.SpecialCells(12).EntireRow).Value = Intersect(Columns(16), Selection.SpecialCells(12).EntireRow).Value
     End With


Код переносит в выделенном отфильтрованном диапазоне даты с 16 столбца в 3 столбец.
Как его изменить, чтобы, если в 16 столбце пустая ячейка, то оставалась бы дата 3-его столбца, а если в 16 столбце есть дата, то она переносилась бы в 3-ий столбец?
Страницы: 1
Наверх