Excel VBA查找日期 - 运行时错误

时间:2018-01-04 12:24:00

标签: excel vba excel-vba date find

我的VBA代码有问题,希望有人可以帮助我。我在这里尝试做的是:

我有一个工作表(表1),其中包含每天更新的数据。为了保留这些数据,我想将源数据复制并存储在另一个工作表上(表2)。表2每天都有列。当我运行代码时,它应该在工作表2中找到今天日期的列,并将数据粘贴到列标题下面。没有火箭科学,对吗?

现在我的问题:通常,代码工作正常。它通常会做它应该做的事情。但有时,无处不在,它会出错:

  

运行时错误' 91':对象变量或未设置块变量

偏移功能

。我发现这个错误发生是因为我的find函数返回" Nothing"。但是我不知道为什么它没有返回任何东西......我已经检查了几件事:

  • 工作表2中的targetheader确实包含所有必需的日期
  • 工作表2中的日期格式为mm / dd / yyyy,格式正确

此外,当我稍微调整代码时,它有时会再次开始工作一段时间......非常奇怪。任何人都知道这里可能出现什么问题?

    Sub Save_Login_Data()

    Dim Source As Range
    Set Source = Worksheets("Data Sheet 1").Range("AV12:AV29")
    Dim TargetHeader As Range
    Set TargetHeader = Worksheets("Data Sheet 2").Range("D119:HF119")
    Dim Today As Date
    Today = CDate(Date)

    With TargetHeader
    Dim TodaysDate As Range
    Set TodaysDate = Range("D119:HF119").Find(What:=Today, _
        LookIn:=xlFormulas, _
        LookAt:=xlWhole, _
        SearchOrder:=xlByColumns, _
        SearchDirection:=xlNext)

    Dim Target As Range
    Set Target = TodaysDate.Offset(1, 0)

        If TodaysDate = Today Then
        Source.Copy
        Target.PasteSpecial Paste:=xlPasteValues

    End If

    End With

谢谢!

0 个答案:

没有答案