У меня есть лист Excel, ширина которого составляет 12 столбцов, а глубина - много строк. Я пытаюсь написать Sub Workshop_Change Sub, который заставит рабочий лист автоматически вставить текущую дату / время, используя функцию Now, в столбец L (или 12) в той же строке, в которой данные были изменены в ячейке в столбцах AK. или от 1 до 11.
До сих пор я пытался использовать функцию Offset для достижения sh этого, но я могу добиться успеха только в выполнении относительных обновлений, а не частично абсолютных обновлений. Я попытался использовать функцию «Выбрать», чтобы заменить переменную функции смещения для смещения столбца в зависимости от того, на какую ячейку ориентирован пользователь, но я также не могу заставить это работать. Прямо сейчас я пытаюсь использовать это, но безрезультатно:
Sub Worksheet_Change(ByVal Target As Range)
Dim WorkRng As Range
Offst As Integer
End Type
Set WorkRng = Range("A:K")
If Not Application.Intersect(WorkRng, Range(Target.AddressLocal)) _
Is Nothing Then
If Target.Column = 1 Then Offst = 11
ElseIf Target.Column = 2 Then Offst = 10
ElseIf Target.Column = 3 Then Offst = 9
ElseIf Target.Column = 4 Then Offst = 8
ElseIf Target.Column = 5 Then Offst = 7
ElseIf Target.Column = 6 Then Offst = 6
ElseIf Target.Column = 7 Then Offst = 5
ElseIf Target.Column = 8 Then Offst = 4
ElseIf Target.Column = 9 Then Offst = 3
ElseIf Target.Column = 10 Then Offst = 2
ElseIf Target.Column = 11 Then Offst = 1
End If
With Offst
Target.Offset(0, Offst).Value = Now
Target.Offset(0, Offst).NumberFormat = "dd-mmm-yyyy AM/PM"
End With
End Sub
Я очень доволен c с VBA, и у меня мало времени позади. Я немного искал inte rnet, и мне хотелось бы думать, что я довольно хорошо истощаю поисковые системы, но не могу найти то, что напрямую связано с моей ситуацией. Я могу только найти примеры людей, обновляющих один столбец данных, а не диапазон.
Любая помощь очень ценится! Спасибо, что нашли время!