Добрый день! Помоги изменить макрос, сейчас если вставляешь несколько дат, то формула не протягивается, и если даты убрать не удаляется. Пример и описание в файле..
Добрый день! Помоги изменить макрос, сейчас если вставляешь несколько дат, то формула не протягивается, и если даты убрать не удаляется. Пример и описание в файле..Elvira66
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column > 1 Then Exit Sub For Each cl In Target.Cells If cl.Value = "" Then cl.Offset(0, 1) = "" Else cl.Offset(0, 1).FormulaR1C1 = "=WEEKNUM(RC[-1])" End If Next cl End Sub
[/vba]
Добрый день. Поправил [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column > 1 Then Exit Sub For Each cl In Target.Cells If cl.Value = "" Then cl.Offset(0, 1) = "" Else cl.Offset(0, 1).FormulaR1C1 = "=WEEKNUM(RC[-1])" End If Next cl End Sub
Попробовал через массив, а не циклом по ячейкам, тоже работает. Хотя формулу ввожу без [vba]
Код
.FormulaR1C1
[/vba] [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column > 1 Then Exit Sub v = Target.Value For x = 1 To UBound(v) If Not v(x, 1) = Empty Then v(x, 1) = "=WEEKNUM(RC[-1])" Next x Target.Offset(0, 1).Value = v End Sub
[/vba]
Попробовал через массив, а не циклом по ячейкам, тоже работает. Хотя формулу ввожу без [vba]
Код
.FormulaR1C1
[/vba] [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column > 1 Then Exit Sub v = Target.Value For x = 1 To UBound(v) If Not v(x, 1) = Empty Then v(x, 1) = "=WEEKNUM(RC[-1])" Next x Target.Offset(0, 1).Value = v End Sub
Мне потребовалось, переместить дату из столбца А (1 столбец) в столбец N (14 столбец), и формулу перенести в P (16 столбец) не понимаю, как изменить макрос? Подскажите пожалуйста, перепробовала уже все варианты
Мне потребовалось, переместить дату из столбца А (1 столбец) в столбец N (14 столбец), и формулу перенести в P (16 столбец) не понимаю, как изменить макрос? Подскажите пожалуйста, перепробовала уже все вариантыElvira66
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column <> 14 Then Exit Sub v = Target.Value For x = 1 To UBound(v) If Not v(x, 1) = Empty Then v(x, 1) = "=WEEKNUM(RC[-2])" Next x Target.Offset(0, 2).Value = v End Sub
[/vba]
немножко не туда 14 пытались воткнуть [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column <> 14 Then Exit Sub v = Target.Value For x = 1 To UBound(v) If Not v(x, 1) = Empty Then v(x, 1) = "=WEEKNUM(RC[-2])" Next x Target.Offset(0, 2).Value = v End Sub