宏以在宏内更改日期条件1

时间:2015-11-04 18:39:19

标签: excel vba excel-vba

使用下面的代码,这是整个宏的几行,但我需要能够轻松地更改日期criteria1,而无需每次都手动执行。这是在月度报告工作表上。日期格式是从数据收集数据库生成的,无法更改。

是否存在能够通过使用宏来更改宏,宏中的行,特别是我的示例中的日期?

Sheets("Raw Data 3M").Select
    Cells.Select
    Application.CutCopyMode = False
    Selection.AutoFilter
    ActiveSheet.Range("$A$1:$I$1000").AutoFilter Field:=8, Criteria1:= _
    "=2015       -10-October"
    Range("A1:I5000").Select
    Selection.Copy
    Sheets("Raw Data").Select
    Range("A1").Select
    ActiveSheet.Paste

1 个答案:

答案 0 :(得分:0)

Inglis的,

有几种方法可以做到这一点。

如果您想要我建议分发的最快捷方式(因为用户可能很愚蠢),只需将自动过滤条件设置为输入框:

ActiveSheet.Range("$A$1:$I$1000").AutoFilter Field:=8, Criteria1:= _
inputbox("Prompt","Title","=2015       -10-October")

只需用更合适的内容替换提示标题

您还可以使用输入框格式化根据需要输入的日期,但如果您不遵循特定格式,则代码将会出错。如:

Dim vDate as Variant
vDate = inputbox("Type a date in the format dd/mm/yyyy")
vDate = DateSerial(Mid(vDate, 7, 4), Mid(vDate, 4, 2), Mid(vDate, 1, 2))
vDate = "=" & Format(vDate, "yyyy       -dd-mmmm")
ActiveSheet.Range("$A$1:$I$1000").AutoFilter Field:=8, Criteria1:=vDate

希望这有帮助!