Попробуйте этот макрос событий рабочего листа:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range, Intersection As Range, cell As Range
Set r = Range("B3:CA1003")
Set Intersection = Intersect(r, Target)
If Intersection Is Nothing Then Exit Sub
Application.EnableEvents = False
For Each cell In Intersection
Range("A" & cell.Row).Value = Date & " " & Time
Next cell
Application.EnableEvents = True
End Sub
Поскольку это код рабочего листа, установить очень просто и использовать автоматически:
- щелкните правой кнопкой мыши имя вкладки в нижней части окна Excel
- выберите Просмотр кода - откроется окно VBE
- вставьте материал и закройте окно VBE
Если у вас есть какие-либо вопросы, сначала попробуйте их на пробной странице.
Если вы сохраните книгу, макрос будет сохранен вместе с ней.
Если вы используете версию Excel позже, чем 2003, вы должны сохранить
файл в формате .xlsm, а не .xlsx
К Удалить Макрос:
- вызвать окна VBE, как указано выше
- очистить код
- закрыть окно VBE
Чтобы узнать больше о макросах в целом, см .:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
и
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
Чтобы узнать больше о макросах событий (код листа), см .:
http://www.mvps.org/dmcritchie/excel/event.htm
Для работы должны быть включены макросы!
EDIT # 1:
Чтобы получить имя пользователя NT и имя приложения, попробуйте:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range, Intersection As Range, cell As Range
Dim s As String
Set r = Range("B3:CA1003")
Set Intersection = Intersect(r, Target)
s = vbCrLf & Environ("USERNAME") & vbCrLf & Application.UserName
If Intersection Is Nothing Then Exit Sub
Application.EnableEvents = False
For Each cell In Intersection
Range("A" & cell.Row).Value = Date & " " & Time & s
Next cell
Application.EnableEvents = True
End Sub