首页 > 解决方案 > 如何复制活动单元格并将它们粘贴到已打开的新工作簿中?

问题描述

我在“Workbook_1.xlsx”中选择活动单元格并启动宏。

宏必须复制该单元格,将其粘贴到同一工作簿中的单元格 I2(“value_for_j2”)中,从单元格 J2 中获取一个值并打开工作簿“Bank accounts.xlsx”并在 I:I 列中搜索 J2 的值(来自“ Workbook_1.xlsm") + 字母“DD”。

然后在找到搜索值的同一行上,它必须在 D 列上复制另一个值 =“accnumber”,打开工作簿“dd.mm.yyyy.xlsx” - WB 名称每天都不同,因此引用必须是动态的(因为每天新文件被提取),这就是为什么我在“Workbook_1.xlsm”的单元格 K2 中放置一个 =today() 公式,所以它总是在宏中被引用,然后它需要在那里粘贴一个过滤器,必须复制过滤后的范围,打开一个新的工作簿,将 A12 中的范围粘贴到那里,返回“Workbook_1.xlsm”,复制最初活动的单元格(在启动宏时,第一个单元格)加上同一行右侧的 3 个单元格(如果活动单元格是 C4,然后复制范围 C4:F4),返回到粘贴过滤范围时创建的新工作簿,并将该信息粘贴到 C7 行。

到目前为止,这是我的简单代码:

    Dim wb As Workbook
    ddmmyyyy_workbook = Range("K2").Value
    Set wb = Workbooks(Format(ddmmyyyy_workbook, "dd.mm.yyyy") & ".xlsx")
    accnomer = ActiveCell
    Dim value_for_J2 As Range
    Selection.Copy
    Range("I2").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Criteria = Range("J2").Value
    Windows("Bank Accounts.xlsx").Activate
    Set batch = Range("I:I").Find(Criteria & "TT")
    If Not value_for_j2 Is Nothing Then
        value_for_j2.Select
    End If
    ActiveCell.Offset(0, -5).Range("A1").Select
    wb.Activate
    ActiveSheet.Range("$A$1:$G$654").AutoFilter field:=5, Criteria1:=accnomer
    Range("C1").Activate
    Selection.CurrentRegion.Select
    Application.CutCopyMode = False
    Selection.Copy
    Workbooks.Add
    Range("A12").Select
    ActiveSheet.Paste

缺少如何返回“Workbook_1.xlsm”并复制活动单元格和另外 3 个(例如 C4:f4)并返回新创建的工作簿并粘贴到 C7 中。

这个问题令人困惑且冗长,我试图只解释整个问题的一部分,但它变得更加令人困惑,所以现在我向你解释我想在我的项目中做的整个过程。

拜托,如果你能帮助我,我将不胜感激。

标签: excelvbadynamic-programming

解决方案


推荐阅读