Я новичок в VBA и адаптировал различные фрагменты кода с форумов.
Контрольный журнал отлично работает, я хотел, чтобы он передавал уникальный идентификатор и заголовок столбца, а также менял ячейку из-за того, что основная таблица данных постоянно сортировалась пользователями. Я только хотел, чтобы изменения, внесенные в рабочий лист под названием «Основной», были записаны - я, вероятно, сделал это многословно, но он работает хорошо.
Мой запрос - это запрос о том, как я могу его адаптировать дальше. В «Основном» листе данных пользователь может одновременно просматривать несколько новых записей (незначительное количество, от 1 до 15 строк данных). Контрольный журнал выведет значение в столбце A только для первой записи. Возможно ли иметь такое, чтобы оно передавало только значение столбца A для каждой из записей при вставке в одно и то же время?
Я пытаюсь проанализировать разницу во времени между заказом на продажу, который был сохранен как завершенный, а затем перенесен в электронную таблицу планирования доставки.
Option Explicit
Public PriorVal As String
Private Sub Workbook_Open()
Dim NR As Long
With Sheets("AuditLog")
NR = .Range("C" & .Rows.Count).End(xlUp).Row + 1
Application.EnableEvents = False
.Range("A" & NR).Value = Environ("UserName")
.Range("B" & NR).Value = Environ("ComputerName")
.Range("C" & NR).Value = Now
Application.EnableEvents = True
End With
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal sh As Object, ByVal Target As Range)
If IsError(Selection(1).Value) = True Then
PriorVal = "Error"
ElseIf Selection(1).Value = "" Then
PriorVal = "Blank"
Else
PriorVal = Selection(1).Value
End If
End Sub
Private Sub Workbook_SheetChange(ByVal sh As Object, ByVal Target As Range)
Dim NR As Long
If sh.Name = "AuditLog" Then Exit Sub 'allows you to edit the log sheet
If sh.Name = "Order data" Then Exit Sub
If sh.Name = "Tables" Then Exit Sub
If sh.Name = "PO prep sheet" Then Exit Sub
If sh.Name = "PO upload sheet" Then Exit Sub
If sh.Name = "Purchase Orders" Then Exit Sub
If sh.Name = "Despatches" Then Exit Sub
If sh.Name = "Comments" Then Exit Sub
If sh.Name = "Late Codes" Then Exit Sub
If sh.Name = "Haulage costs" Then Exit Sub
If sh.Name = "Haulier instruction" Then Exit Sub
If Target.Address = "$R$3" Then Exit Sub
Application.EnableEvents = False
With Sheets("AuditLog")
NR = .Range("C" & .Rows.Count).End(xlUp).Row + 1
.Range("A" & NR).Value = Environ("UserName")
.Range("B" & NR).Value = Environ("ComputerName")
.Range("C" & NR).Value = Now
.Range("D" & NR).Value = sh.Name
.Range("E" & NR).Value = Target.Address
.Range("F" & NR).Value = Cells(5, Target.Column)
.Range("G" & NR).Value = PriorVal
.Range("H" & NR).Value = Target(1).Value
.Range("I" & NR).Value = Cells(Target.Row, 1)
NR = NR + 1
End With
Application.EnableEvents = True
End Sub