在固定列中打印日期和时间,而不是事件日志的偏移量
Print Date and time in fixed column instead offset for Log of events
我想创建事件日志。在表格中,我将填充从 C 列开始的同一行的单元格,并且我希望在 A 列和 B 列中自动打印日期和时间。有时信息可能从 D 列开始,而 C 列为空。
下面的代码仅通过 C 列和 C 列的偏移量来实现。即使我扩大相交的范围,日期和时间也会执行,而不是固定在 A 和 B 中。有人会给我提示吗?
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim rCell As Range
Dim rChange As Range
On Error GoTo ErrHandler
Set rChange = Intersect(Target, Range("C:C"))
If Not rChange Is Nothing Then
Application.EnableEvents = False
For Each rCell In rChange
If rCell > "" Then
With rCell.Offset(0, -2)
.Value = Date
.NumberFormat = "[$-2C09]ddd, DD/MM/YYYY"
.HorizontalAlignment = xlLeft
.EntireColumn.AutoFit
End With
With rCell.Offset(0, -1)
.Value = Time
.NumberFormat = "hh:mm"
.HorizontalAlignment = xlCenter
.EntireColumn.AutoFit
End With
Else
rCell.Offset(0, -1).Clear
rCell.Offset(0, -2).Clear
End If
Next
End If
ExitHandler:
Set rCell = Nothing
Set rChange = Nothing
Application.EnableEvents = True
Exit Sub
ErrHandler:
MsgBox Err.Description
Resume ExitHandler
End Sub
Dim rw as Range
'.......
'.......
If rCell > "" Then
Set rw = rCell.EntireRow
With rw.Cells(1)
.Value = Date
.NumberFormat = "[$-2C09]ddd, DD/MM/YYYY"
.HorizontalAlignment = xlLeft
.EntireColumn.AutoFit
End With
With With rw.Cells(2)
.Value = Time
.NumberFormat = "hh:mm"
.HorizontalAlignment = xlCenter
.EntireColumn.AutoFit
End With
Else
rCell.EntireRow.Cells(1).Resize(1,2).Clear
End If
'.......
我想创建事件日志。在表格中,我将填充从 C 列开始的同一行的单元格,并且我希望在 A 列和 B 列中自动打印日期和时间。有时信息可能从 D 列开始,而 C 列为空。 下面的代码仅通过 C 列和 C 列的偏移量来实现。即使我扩大相交的范围,日期和时间也会执行,而不是固定在 A 和 B 中。有人会给我提示吗?
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim rCell As Range
Dim rChange As Range
On Error GoTo ErrHandler
Set rChange = Intersect(Target, Range("C:C"))
If Not rChange Is Nothing Then
Application.EnableEvents = False
For Each rCell In rChange
If rCell > "" Then
With rCell.Offset(0, -2)
.Value = Date
.NumberFormat = "[$-2C09]ddd, DD/MM/YYYY"
.HorizontalAlignment = xlLeft
.EntireColumn.AutoFit
End With
With rCell.Offset(0, -1)
.Value = Time
.NumberFormat = "hh:mm"
.HorizontalAlignment = xlCenter
.EntireColumn.AutoFit
End With
Else
rCell.Offset(0, -1).Clear
rCell.Offset(0, -2).Clear
End If
Next
End If
ExitHandler:
Set rCell = Nothing
Set rChange = Nothing
Application.EnableEvents = True
Exit Sub
ErrHandler:
MsgBox Err.Description
Resume ExitHandler
End Sub
Dim rw as Range
'.......
'.......
If rCell > "" Then
Set rw = rCell.EntireRow
With rw.Cells(1)
.Value = Date
.NumberFormat = "[$-2C09]ddd, DD/MM/YYYY"
.HorizontalAlignment = xlLeft
.EntireColumn.AutoFit
End With
With With rw.Cells(2)
.Value = Time
.NumberFormat = "hh:mm"
.HorizontalAlignment = xlCenter
.EntireColumn.AutoFit
End With
Else
rCell.EntireRow.Cells(1).Resize(1,2).Clear
End If
'.......