【问题标题】:VBA Macro to copy/paste cell value from sheet 1 to 2 based on dateVBA宏根据日期将单元格值从工作表1复制/粘贴到2
【发布时间】:2020-10-27 07:09:45
【问题描述】:

我已在工作表 1 中锚定了一个日期和一个值,并希望在工作表 2 的 A 列中查找该日期,并将工作表 1 的值粘贴到工作表 2 的 E 列中。

在sheet 1中,我今天的名字是REP_DATE,我要查找的日期是昨天的日期,也就是REP_DATE - 1,我在sheet1 E5中有这个公式,值在F5中。

这是我从网上得到的代码,我做了一些调整:

Sub CopyData()
Dim myDate As Date
Dim myValue As Variant
myDate = ThisWorkbook.Sheets("Sheet1").Range("E6").Value
myValue = ThisWorkbook.Sheets("Sheet1").Range("F6").Value


ThisWorkbook.Sheets("Sheet2").Range("A:A").Find(myDate).Offset(0, 4).Value = myValue

End Sub

但是,我不断收到错误“运行时错误'91':对象变量或未设置块变量”,调试指的是这行代码ThisWorkbook.Sheets("Sheet2").Range("A:A").Find(myDate).Offset(0, 4).Value = myValue

这真的让我很困惑,我想知道如何解决这个问题。

谢谢。

【问题讨论】:

    标签: excel vba date copy-paste


    【解决方案1】:

    您描述了您在第 5 行 (e5, f5) 中有您的日期/值,而在您的代码中您正在按第 6 行 (e6, f6) 查找日期。

    因为找不到日期而显示错误。

    如果您的日期在 Sheet2 中不存在,也会出现同样的错误。

    您可以在代码中更新单元格地址。 此外,您可以添加一些错误处理,让用户知道为什么代码不能正确工作,以防找不到日期;

    Option Explicit
    
    Sub CopyData()
    Dim myDate As Date
    Dim myValue As Variant
    myDate = ThisWorkbook.Sheets("Sheet1").Range("E5").Value
    myValue = ThisWorkbook.Sheets("Sheet1").Range("F5").Value
    
    On Error GoTo nodate
    ThisWorkbook.Sheets("Sheet2").Range("A:A").Find(myDate).Offset(0, 4).Value = myValue
    On Error GoTo 0
    
    Exit Sub
    
    nodate:
        MsgBox ("Date is not found")
    End Sub
    

    【讨论】:

    • 非常感谢您指出错误!非常感激! :) :) :) 我也发现这是因为我查找的日期是一个公式,所以它找不到它。
    【解决方案2】:

    感谢@Salamander Krajza,我将在这里分享我最新的代码,需要将 sheet2 上的日期从公式更改为值,以便 find 函数发挥其魔力:

    Sub CopyData()
    Dim myDate As Date
    Dim myValue As Variant
    myDate = ThisWorkbook.Sheets("Sheet1").Range("E5").Value
    myValue = ThisWorkbook.Sheets("Sheet1").Range("F5").Value
    
    
    On Error GoTo nodate
    ThisWorkbook.Sheets("Sheet2").Range("A:A").Find(what:=myDate, LookIn:=xlValues, lookat:=xlWhole).Offset(0, 4) = myValue
    On Error GoTo 0
    
    Exit Sub
    
    nodate:
        MsgBox ("Date is not found")
    End Sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多