【问题标题】:Excel/VBA - Copy and paste data into a worksheet in a specific row based on dateExcel/VBA - 根据日期将数据复制并粘贴到特定行中的工作表中
【发布时间】:2011-08-10 15:38:18
【问题描述】:

我有一个我认为很简单的问题。

我有一份每天更新的报告。每天需要将一个工作表中的特定范围 (B5:AC5) 复制到不同的工作表中。这不需要自动完成,我只想将它的代码添加到我创建的格式化宏中。

我有两个问题:

  1. 我希望将数据粘贴到与该特定日期对应的行中。工作表“每日”中的 A 列包含该月的工作日列表。所以我需要的只是让宏在“每日”的 A 列中找到今天的日期,然后将 b5:AC5 从“矩阵”粘贴到 b?:ac?在“每日”的那一行。

  2. 我还需要它是特殊粘贴,只粘贴值。

我对 VB 很陌生,但通常可以很好地遵循代码逻辑。如果您需要我提供更多信息,请告诉我。非常感谢!

【问题讨论】:

    标签: date excel copy-paste vba


    【解决方案1】:

    假设你的范围总是在 B5:AC5,这就是我想出的:

    Sub FindToday()
    
        Dim FoundDate As Range
        Set FoundDate = Worksheets("Daily").Columns("A").Find(DateValue(Now), LookIn:=xlValues, lookat:=xlWhole)
    
        If Not FoundDate Is Nothing Then ' if we don't find the date, simply skip. 
            Worksheets("Matrix").Range("B5:AC5").Copy
            FoundDate.Offset(0, 1).PasteSpecial xlPasteValues, xlPasteSpecialOperationNone, False, False ' You can see that the first argument in PasteSpecial is set to only paste values. 
    
       End If
    End Sub
    

    我已尽我所能提供您的信息对此进行了测试。我在 B5:AC5 范围内放置了一组升序数字,并带有公式,在 Daily 表中放置了一个月的一组升序日期,它似乎可以满足您的要求。

    希望这会有所帮助。

    【讨论】:

    • 哇,效果很好。我真的很感谢你帮助我!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-24
    • 2023-04-03
    • 2022-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多