首页 > 解决方案 > 宏不更新

问题描述

我有一个宏来添加在 Sheet1(宏 1)中更改单元格的时间,但它不会自动更新。如果我手动输入一个值,宏就可以工作。我有另一个宏将表单 sheet2 复制到 sheet1(macro2),macro1 不起作用。有人可以帮我理解这个问题吗?

Sub Worksheet_Change(ByVal Target As Range)
    Dim rInt As Range
    Dim rCell As Range
    Dim tCell As Range

    Set rInt = Intersect(Target, Range("tbl_summary[Request ID]"))
    If Not rInt Is Nothing Then
        For Each rCell In rInt
            Set tCell = rCell.Offset(0, -2)
            If IsEmpty(tCell) Then
                tCell = Now
                tCell.NumberFormat = "mmm d, yy   hh:mm"
            End If
        Next
    End If
End Sub

这是复制和粘贴值的代码

Public Sub Move_AssignedWork()
    Dim lRowF As Long

    ThisWorkbook.Activate
    lRowF = ShWorkSummary.Cells(ShWorkSummary.Rows.Count, 6).End(xlUp).Row
    lRowF = lRowF + 1
    
    Worksheets("MoveItems").Select
    With ActiveSheet.ListObjects("Tbl_template")
        .Range.AutoFilter Field:=20, Criteria1:="Sent"
        Union(.ListColumns(1).DataBodyRange, _
            .ListColumns(2).DataBodyRange, _
            .ListColumns(3).DataBodyRange, _
            .ListColumns(4).DataBodyRange, _
            .ListColumns(12).DataBodyRange, _
            .ListColumns(13).DataBodyRange, _
            .ListColumns(14).DataBodyRange, _
            .ListColumns(15).DataBodyRange, _
            .ListColumns(16).DataBodyRange, _
            .ListColumns(17).DataBodyRange, _
            .ListColumns(18).DataBodyRange, _
            .ListColumns(19).DataBodyRange).Copy
    End With

    ShWorkSummary.Select
    Range("D" & lRowF).PasteSpecial Paste:=xlPasteValues
      
    Worksheets("MoveItems").Select
    With ActiveSheet.ListObjects("Tbl_template")
        .Range.AutoFilter Field:=20
    End With
    
End Sub

标签: excelvba

解决方案


推荐阅读