Vba 在宏中更改日期标准1的宏

Vba 在宏中更改日期标准1的宏,vba,excel,Vba,Excel,使用下面的代码,这是整个宏的几行代码,但我需要能够轻松地更改日期criteria1,而无需每次手动更改。这在月报工作表上。日期的格式是从数据收集数据库生成的,不能更改 代码的存在是否能够通过使用宏,特别是我的示例中的日期,来更改宏、宏中的一行 Sheets("Raw Data 3M").Select Cells.Select Application.CutCopyMode = False Selection.AutoFilter ActiveSheet.Range

使用下面的代码,这是整个宏的几行代码,但我需要能够轻松地更改日期
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
英格利斯

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

如果您想要我不推荐的最快的分发方式(因为用户可能是哑的),只需将自动筛选条件设置为inputbox:

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

希望这有帮助

这个月的数据是2015年10月10日,下个月是2015年11月11日,以此类推。我想用上个月的代码交换下个月的代码。对不起,有任何困惑。日期有规律吗?我唯一能想到的答案是。。。对我每月使用一次这些工作表。例如,这个月的im将显示为2015-10-10。下个月将是2015年11月。我有多个宏可以用不同的工作表执行类似的功能。我不想手动将10月改为11月,我想用一个宏来为我做这件事。。。思想?模式是什么?每个月的第三个星期四?或者类似的。因为如果有一个模式,请将日期设置为遵循该模式的变量。很抱歉在编辑中进行编辑。我按了返回按钮快速。。。数据可以每月随机运行。可能是本月10日星期五,或本月23日星期四。。。