Имеется такой код. Когда записываю в столбец B в столбце A пишется дата и время. Нужно сделать так, чтобы писало только дату. Нужно исправить именно в коде. Формат даты менял, но при поиске через фильтр он работает криво, не определяет по датам.
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
For Each cell In Target 'проходим по всем измененным ячейкам If Not Intersect(cell, Range("B2:B1000")) Is Nothing Then 'если изменененная ячейка попадает в диапазон A2:A100 With cell.Offset(0, -1) 'вводим в соседнюю справа ячейку дату .Value = Now .EntireColumn.AutoFit 'выполняем автоподбор ширины для столбца B, чтобы дата умещалась в ячейке End With End If Next cell End Sub
[/vba]
Имеется такой код. Когда записываю в столбец B в столбце A пишется дата и время. Нужно сделать так, чтобы писало только дату. Нужно исправить именно в коде. Формат даты менял, но при поиске через фильтр он работает криво, не определяет по датам.
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
For Each cell In Target 'проходим по всем измененным ячейкам If Not Intersect(cell, Range("B2:B1000")) Is Nothing Then 'если изменененная ячейка попадает в диапазон A2:A100 With cell.Offset(0, -1) 'вводим в соседнюю справа ячейку дату .Value = Now .EntireColumn.AutoFit 'выполняем автоподбор ширины для столбца B, чтобы дата умещалась в ячейке End With End If Next cell End Sub
_Boroda_, Если ячейка B1 была заполнена и соответственно автоматически дата в столбце A1 поставилась, то как сделать, чтобы потом при изменении ячейки B1, дата оставалась прежней?
_Boroda_, Если ячейка B1 была заполнена и соответственно автоматически дата в столбце A1 поставилась, то как сделать, чтобы потом при изменении ячейки B1, дата оставалась прежней?Ramilka
Private Sub Worksheet_Change(ByVal Target As Range) Set d0_ = Intersect(Target, Range("B2:B1000")) 'd0 - пересечение изменяемого и столбца В If Not d0_ Is Nothing Then 'если оно не пусто For Each d_ In d0_ 'цикл по каждой ячейке этого пересечения With d_.Offset(0, -1) 'для ячейки слева If .Value = "" Then 'если она не пустая .Value = Date 'вставить туда дату .EntireColumn.AutoFit 'расширить столбце End If End With Next d_ End If End Sub
[/vba]
Так нужно? [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) Set d0_ = Intersect(Target, Range("B2:B1000")) 'd0 - пересечение изменяемого и столбца В If Not d0_ Is Nothing Then 'если оно не пусто For Each d_ In d0_ 'цикл по каждой ячейке этого пересечения With d_.Offset(0, -1) 'для ячейки слева If .Value = "" Then 'если она не пустая .Value = Date 'вставить туда дату .EntireColumn.AutoFit 'расширить столбце End If End With Next d_ End If End Sub