【问题标题】:Code causing formula not to work properly导致公式无法正常工作的代码
【发布时间】:2014-06-16 11:57:24
【问题描述】:

我有一个名为 data 的工作表和同一个工作簿中的多个工作表,它们是员工姓名。

数据工作表包含各个员工工作表的摘要。

在数据工作表上,A 列是工人姓名,B 列是过去 30 天分配的任务,C 列是过去 7 天分配的任务,D 列是最近 1 小时任务分配的日期/时间,E 列是日期/上次分配任务的时间。

在个别员工工作表中,以下代码允许当在 B 列中输入内容时,日期和时间会自动输入到 E 列中。

代码如下:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Target, Columns("B:B")) Is Nothing Then
        Target.Offset(0, 3).Value = Format(Now, "mm dd yyyy h:mm")
    End If
End Sub

我的问题是,由于我输入了该代码,数据表中 B、C、D 和 E 列中的信息不正确。

不计算个人员工表上的信息。

在我添加代码之前,这些公式是有效的。

例如 - 在我添加代码之前,Amy 在过去 30 天内收到了 3 份报告。

自从添加代码后,她又收到了 4 份报告。

数据表上的 B 列应显示为 7,但仍显示为 3。

非常感谢您在此问题上提供的任何帮助。

【问题讨论】:

    标签: excel excel-formula excel-2007 vba


    【解决方案1】:

    我怀疑问题在于您的日期/时间戳没有被存储为真实日期。尝试使用:

    Private Sub Worksheet_Change(ByVal Target As Range)
        If Not Application.Intersect(Target, Columns("B:B")) Is Nothing Then
            with Target.Offset(0, 3)
              .Value = Now
              .Numberformat = "mm dd yyyy h:mm"
            end with
        End If
    End Sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-28
      • 2017-08-01
      • 1970-01-01
      相关资源
      最近更新 更多