让Excel宏循环任务,每次都略有不同

时间:2017-01-11 12:00:12

标签: excel vba

我希望有人可以帮助我,因为我知道我想创建的宏可以节省大约30分钟的时间。工作,如果它脱落。

每月一次我下载一份金融交易报告;我需要使用的搜索变量位于C列。每个搜索变量的行数会逐月变化。我需要搜索包含给定变量的所有行(例如VDEN,VDEM VDEF;这些是精确的搜索术语),复制包含变量的所有行并将它们粘贴到五个工作簿中的一个中,每个工作簿中都包含多个工作表。

我有一些代码用一个术语和一个工作表位置执行此操作,但我不知道如何循环它以便它返回一个新变量并重新开始整个过程​​。

这就是我已经拥有的:

Sub Macro2()

Workbooks.Open Filename:="C:\Users\jo\Desktop\Month End.xlsx"
Columns("A:L").Select
Selection.EntireColumn.Hidden = False
Application.DisplayAlerts = False
Cells.Find("Total:").Rows(1).EntireRow.Delete
Application.DisplayAlerts = True

Dim lastrow As Long
lastrow = ActiveSheet.Cells(ActiveSheet.Rows.Count, "A").End(xlUp).Row

With ActiveSheet.Range("a1:l" & lastrow)
.AutoFilter Field:=3, Criteria1:="VDEN"
.Offset(1, 0).Copy

 End With

Workbooks.Open Filename:="X:\admin\Finance\2016-17\Transaction Lists\Sample Transactions 2016-17.xlsx"

Windows("Month End.xlsx").Activate
Windows("Sample Transactions 2016-17.xlsx").Activate
Sheets("Pre-Sessional").Select
Columns("A:L").Select
Selection.EntireColumn.Hidden = False

Windows("Sample Transactions 2016-17.xlsx").Activate
Worksheets("Pre-Sessional").Activate
Range("A" & Rows.Count).End(xlUp).Offset(1).Select
ActiveSheet.Paste
Range("D:D,F:F,G:G,H:H,K:K").Select

Selection.EntireColumn.Hidden = True

Windows("Month End.xlsx").Activate
ActiveSheet.ShowAllData


 End Sub

有人可以帮忙吗?

非常感谢

1 个答案:

答案 0 :(得分:0)

查看过滤器中的OR子句。我建议录制多个选择过滤器,例如And Or Criteria约2/3向下。或者在数组上使用for next循环。像Looping Array

一样