在excel 2013中使用日期作为变量的自动过滤器不起作用

时间:2017-02-03 21:04:00

标签: excel vba

当我尝试在一个过滤器中将日期作为变量传递时,我遇到了一个问题,它在其他列中没有问题,但是当我到达日期列时它没有做任何事情。我尝试将变量作为字符串和日期但没有。我甚至试图将列和变量格式化为美国式(mmddyy),因为我在excel的早期版本中读到这是一个常见错误,但没有。

我仍然是vba的初学者,所以也许只是一个愚蠢的错误,但我只是看不到它。提前致谢

当我提出其中一个评论时,格式不会改变任何东西,过滤器仍然无法正常工作我尝试使用dateserial和fomart imput方式,仍然是相同的。

Sub DateReport_click()

Dim DateRe As String

Application.ScreenUpdating = False
Sheets("Datos").Visible = True
Sheets("Datos").Unprotect
Sheets("History slot").Unprotect


Sheets("Principal").Select
DateRe = Range("G18").Value
Sheets("Datos").Select
Cells.Select
Selection.Clear
Sheets("Reported").Select
Range("e1").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlToLeft)).Select
Selection.Copy
Sheets("Datos").Select
Range("A1").Select

'copia tambien la anchura de las columnas
With Sheets("Datos").Range("A1")
.PasteSpecial xlPasteColumnWidths
.PasteSpecial xlPasteValues, , False, False
.PasteSpecial xlPasteFormats, , False, False
End With
Application.CutCopyMode = False


'filter

With Sheets("Datos")

.AutoFilterMode = False

.Range("A1:J1").AutoFilter

.Range("A1:J1").AutoFilter Field:=4, Criteria1:="=*" & DateRe & "*", VisibleDropDown:=False




End With
'copiar
Range("A1").Select
Sheets("History slot").Cells.Clear
Range("A1:J" & Cells(Rows.Count, "A").End(xlUp).Row).SpecialCells(xlCellTypeVisible).Copy
Sheets("History slot").Select
Range("a1").Select
'usado asi para que copie la anchura de las columnas
With Sheets("History slot").Range("A1")
.PasteSpecial xlPasteColumnWidths
.PasteSpecial xlPasteValues, , False, False
.PasteSpecial xlPasteFormats, , False, False
End With
Application.CutCopyMode = False
Range("A1").Select
Sheets("Datos").Cells.Clear
Sheets("Datos").Cells.Clear

Sheets("Datos").Protect
Sheets("History slot").Protect
Sheets("Datos").Visible = False
Application.ScreenUpdating = True

End Sub

0 个答案:

没有答案