如何在excel更改日期的文件中创建宏

时间:2015-01-24 10:03:15

标签: excel excel-vba copy-paste vba

我每天都在创建一份报告,所需的数据是:

  1. 打开文件名为#1的文件名:file1 \ today_23012015 for today。
  2. 在文件#1中,我需要获取昨天的日期为22012015的项目并复制它们并将其粘贴到新的工作簿中。
  3. 打开文件名#2,文件名为:file2 \ today_23012015 for today。
  4. 在文件#2中,我需要获取昨天的日期为22012015的项目,然后复制并粘贴到工作簿1的工作表2中。
  5. 任何人都可以帮我创建宏吗?

    Sub Macro17()
    '
    ' Macro17 Macro
    '
    
    '
        Workbooks.Open Filename:="C:\Users\estillor\Desktop\file1240115.xlsx"
        Windows("With macro.xlsm").Activate
        Windows("file1240115.xlsx").Activate
        ActiveCell.Offset(-8, -11).Range("A1").Select
        Selection.AutoFilter
        ActiveSheet.Range("$A$1:$D$24").AutoFilter Field:=4, Operator:= _
            xlFilterValues, Criteria2:=Array(2, "1/23/2015")
        Range(Selection, Selection.End(xlToRight)).Select
        Range(Selection, Selection.End(xlDown)).Select
        Selection.Copy
        Windows("With macro.xlsm").Activate
        Sheets("Sheet1").Select
        ActiveSheet.Paste
        Windows("file1240115.xlsx").Activate
        Windows("With macro.xlsm").Activate
        Workbooks.Open Filename:="C:\Users\estillor\Desktop\file2240115.xlsx"
        ActiveCell.Offset(-4, -16).Range("A1").Select
        Application.CutCopyMode = False
        Selection.AutoFilter
        ActiveSheet.Range("$A$1:$D$10").AutoFilter Field:=4, Operator:= _
            xlFilterValues, Criteria2:=Array(2, "1/23/2015")
        Range(Selection, Selection.End(xlToRight)).Select
        Range(Selection, Selection.End(xlDown)).Select
        Selection.Copy
        Windows("With macro.xlsm").Activate
        Sheets("Sheet2").Select
        ActiveSheet.Paste
    End Sub
    

1 个答案:

答案 0 :(得分:0)

这将是一个完全开始工作的过程,

使用此代码

练习调整文件夹位置和文件名。

一旦你为此工作,请回复一个更详细的问题。

Sub Do_Something_Cool()
    Dim wb As Workbook, ws As Worksheet
    Dim Bk As Workbook, sh As Worksheet
    Dim dirt As String
    Dim FnM As String
    Dim FileNm As String
    Dim Rws As Long, Rng As Range

    dirt = "C:\Users\Dave\Downloads\"'adjust location
    FnM = "file1240115.xlsx"
    FileNm = dirt & FnM

    Application.ScreenUpdating = 0

    Set wb = Workbooks("WithMacro.xlsm")
    Set ws = wb.Sheets("Sheet1")
    Set Bk = Workbooks.Open(FileNm)
    Set sh = Bk.Worksheets(1)

    With sh

        Rws = .Cells(Rows.Count, "A").End(xlUp).Row
        .Range("A1").AutoFilter Field:=4, Criteria1:="=1/23/2015"
        Set Rng = .Range(.Cells(2, "A"), .Cells(Rws, "D")).SpecialCells(xlCellTypeVisible)
        Rng.Copy Destination:=ws.Cells(Rows.Count, "A").End(xlUp).Offset(1, 0)
        .AutoFilterMode = 0
        Bk.Close True

    End With

End Sub