工作表变更

工作表变更

我正在尝试整理一个可以添加时间戳的宏。

我有 2 张纸inputdashboard

当单元格 A2 发生input变化时,我希望在单元格 M8 上使用该函数dashboard

我在工作表上按下 alt + F11input来调出 vba 编辑器并使用:

Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Address = "$A$2" Then

        Sheets("Dashboard").Select
        Range("M8").Select
        ActiveCell.FormulaR1C1 = "=NOW()"
        Selection.Copy
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
        Application.CutCopyMode = False

    End If

End Sub

它失败在以下行:

Range("M8").Select

代码有什么问题?

答案1

这是因为在工作表代码中,如果您没有指定范围的父级,它会假定代码所在的工作表不是活动工作表(如模块)。因此,input不再处于活动状态时,您无法选择该工作表中的单元格。

你可以用这一行替换 IF 中的所有内容:

Worksheets("Dashboard").Range("M8").Value2 = Now()

它将把当前日期/时间粘贴为一个值而不是公式,无需选择或激活任何东西。

相关内容