我有两个文本框,分别在两个框中输入两个日期。我希望宏遍历一列日期并隐藏文本框中输入的两个日期之间不的所有日期。第一个文本框日期应该是过去的第二个文本框日期。
我有以下代码:
Set ws2 = Sheets("Test")
Dim StartDate As String
Dim EndDate As String
ws2.Range("G2").Value = TXTDate1.Text
ws2.Range("G3").Value = TXTDate2.Text
StartDate = ws2.Range("G2").Value ' Start Date in test tab
EndDate = ws2.Range("G3").Value
StartDate = Trim(ws2.Range("G2").Value)
EndDate = Trim(ws2.Range("G3").Value) **'Reverses the format from American date format to English date format**
Set temprange = ActiveSheet.Range("D5").End(xlDown)
Set temprange = Range(Range("D6"), temprange)
For Each z In temprange
z.EntireRow.Hidden = True
If TXTDate1.Value <> "" Then
If z.Offset(0, 5).Value > StartDate Then
If z.Offset(0, 5).Value < EndDate Then **'PART THAT IS NOT WORKING**
z.EntireRow.Hidden = False
End If
End If
End If
Next z
问题是第二个条件不起作用。宏未识别结束日期之前的日期。如何启用宏以识别第二个条件?
答案 0 :(得分:0)
我已使用AutoFilter Method根据您的 startdate 和 enddate vars显示/隐藏日期。
Sub Button1_Click()
Sheet4.Select
'Copy the data
Sheets("Sheet1").Range("A7").Copy
Sheets("Sheet1").Range("D7").Copy
Sheets("Sheet1").Range("G7").Copy
Sheets("Sheet1").Range("C10").Copy
Sheets("Sheet1").Range("A12").Copy
Sheets("Sheet1").Range("C12").Copy
Sheets("Sheet1").Range("A14").Copy
Sheets("Sheet1").Range("A16").Copy
Sheets("Sheet1").Range("A29").Copy
'Activate the destination worksheet
Sheets("Sheet4").Activate
'Select the target range
Sheets("Sheet4").Range("A6").Paste
Sheets("Sheet4").Range("E6").Paste
Sheets("Sheet4").Range("H6").Paste
Sheets("Sheet4").Range("G8").Paste
Sheets("Sheet4").Range("A10").Paste
Sheets("Sheet4").Range("G10").Paste
Sheets("Sheet4").Range("A12").Paste
Sheets("Sheet4").Range("A14").Paste
Sheets("Sheet4").Range("A19").Paste
'Paste in the target destination
ActiveSheet.Paste
Application.CutCopyMode = False
End Sub
我隐藏了通常与.AutoFilter关联的小下拉箭头。您必须将格式掩码更改为EN-UK格式以匹配您的数据(d / m / yy ......?)。
可以通过常规方式或通过使用数据上的清除命令来“取消隐藏”行►排序&amp;过滤或简单地关闭.AutoFilter。