按日期筛选-VBA

按日期筛选-VBA,vba,excel,Vba,Excel,我想按日期筛选,这样我就可以删除具有相同日期的以前的数据并进行更新。我对这部分代码有问题,因为如果日期格式在2018年7月3日至2018年7月3日之间变化,它将无法正确过滤 由于用户可能以两种方式输入日期,我如何解释格式上的差异?谢谢大家! Sheet3.Select dateToFind = Sheet8.Range("L6") Range("A1").Select Selection.AutoFilter ActiveSheet.UsedRange.Select Selection.Auto

我想按日期筛选,这样我就可以删除具有相同日期的以前的数据并进行更新。我对这部分代码有问题,因为如果日期格式在2018年7月3日至2018年7月3日之间变化,它将无法正确过滤

由于用户可能以两种方式输入日期,我如何解释格式上的差异?谢谢大家!

Sheet3.Select
dateToFind = Sheet8.Range("L6")
Range("A1").Select
Selection.AutoFilter
ActiveSheet.UsedRange.Select
Selection.AutoFilter field:=10, Criteria1:=dateToFind

Selection.Offset(1, 0).Select

lr = Cells(Rows.Count, 1).End(xlUp).Row
If lr > 1 Then
    Range("A2:A" & lr).SpecialCells(xlCellTypeVisible).EntireRow.Delete
End If

要将格式设置为通用格式,请按如下所示将文本设置为列

> Columns("K:K").Select 'reformat date to function in the rest of the
> macro
>     Selection.TextToColumns Destination:=Range("k1"), DataType:=xlDelimited, _
>         TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
>         Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
>         :=Array(1, 3), TrailingMinusNumbers:=True

日期格式在2018年7月3日至2018年7月3日之间变化-然后开始修正数据,使其一致?格式应该是无关的。如果数据包含
Date
值,并且Excel可以理解这些值,那么您使用的是
Date
值,而不是
String
值。什么类型的
dateToFind
<代码>字符串?申报了吗?在模块顶部指定
Option Explicit
,如果不是,则声明所有变量。我假设某些条目是以文本形式输入的,excel不会将其识别为日期值。可能选择整个列并将其格式化为日期。如果不起作用,您可以尝试选择整个J列,然后转到Data=>并选择“Text to column”,点击next几次,直到看到日期选项,选择Date选项并完成,看看是否有任何效果。@DaveXcel工作正常,感谢您的帮助!