Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 在固定列中打印日期和时间,而不是在事件日志的偏移量中打印_Excel_Vba_Offset - Fatal编程技术网

Excel 在固定列中打印日期和时间,而不是在事件日志的偏移量中打印

Excel 在固定列中打印日期和时间,而不是在事件日志的偏移量中打印,excel,vba,offset,Excel,Vba,Offset,我想创建一个事件日志。有了表格,我会从C列开始在同一行中填充单元格,我希望在a列和B列中自动打印日期和时间。有时,从d列和C列开始的信息可能是空的。 下面的代码仅通过C列和C列的偏移量来实现这一点。即使我扩大了Intersect的范围,日期和时间也会被执行,而不会固定在A和B中。有人会给我一个提示吗 Private Sub Worksheet_Change(ByVal Target As Excel.Range) Dim rCell As Range Dim rChange As

我想创建一个事件日志。有了表格,我会从C列开始在同一行中填充单元格,我希望在a列和B列中自动打印日期和时间。有时,从d列和C列开始的信息可能是空的。 下面的代码仅通过C列和C列的偏移量来实现这一点。即使我扩大了Intersect的范围,日期和时间也会被执行,而不会固定在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
        '.......