【问题标题】:macro is affecting sheets retroactively宏正在追溯影响工作表
【发布时间】:2019-12-27 08:29:11
【问题描述】:

该宏应该创建一个新工作表并将工作表命名为当前日期,从上一个工作表中复制框,将其粘贴到新工作表中,并格式化新框(新日期/清除内容)。

宏运行良好 7 次(每天运行一次),但今天当我运行宏时,它追溯地将单元格的日期(例如 12-17 表在单元格中有 12/17)更改为之后的表。 (所以现在 12-17 表在单元格中有 12/18,12-20 表在单元格中有 12/23 等)。但是,它不再影响我开始使用宏的工作表(12-13 是手动的,12-16 是宏创建的工作表。12-13 不受影响)。

奇怪的是,如果我制作一个缓冲表(Sheet2)并手动将框从 12-24 复制到其中并运行宏,则工作表 12-26 会正常显示并将 Sheet2 中的 12/24 更改为 12/ 26,但保持工作表 12-24 和之前不变。

这是宏的代码:

    Sheets.Add(After:=ActiveSheet).Name = Format(Date, "MM-DD-YY")
    ActiveSheet.Previous.Select
    Cells(2, 2).Value = Format(Date, "MM/DD/YY")
    Range("B1:B2").HorizontalAlignment = xlCenter
    Range("A1:C21").Select
    Selection.Copy
    ActiveSheet.Next.Select
    ActiveSheet.Paste
    Columns("A:A").ColumnWidth = 20
    Columns("B:B").ColumnWidth = 25
    Columns("C:C").ColumnWidth = 20
    Range("C5:C7").ClearContents
    Range("C9:C10").ClearContents
    Range("C16:C18").ClearContents

End Sub

感谢您的帮助。

【问题讨论】:

标签: excel


【解决方案1】:

看起来您的第三行正在更改上一张表中的日期。

由于它选择了上一张工作表,因此第三行转到单元格 B2 并将 今天 日期的值分配给 昨天 工作表中的该单元格。

如果您打算将 B2 今天的日期设为相同的格式,我会将第 3 行移至 ActiveSheet.Paste 之后的某个位置,因此您的代码将变为:

Sheets.Add(After:=ActiveSheet).Name = Format(Date, "MM-DD-YY")
ActiveSheet.Previous.Select
Range("B1:B2").HorizontalAlignment = xlCenter
Range("A1:C21").Select
Selection.Copy
ActiveSheet.Next.Select
ActiveSheet.Paste
Cells(2, 2).Value = Format(Date, "MM/DD/YY")
Columns("A:A").ColumnWidth = 20
Columns("B:B").ColumnWidth = 25
Columns("C:C").ColumnWidth = 20
Range("C5:C7").ClearContents
Range("C9:C10").ClearContents
Range("C16:C18").ClearContents

【讨论】:

    猜你喜欢
    • 2021-08-10
    • 2017-10-18
    • 2021-01-07
    • 2013-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多