2014-10-29 232 views
0

我想要做的是過濾列W上的電子表格中的數據,然後將該表中的所有行復制到另一個表中,如果列N中的值等於今天的日期。過濾當天的日期。

我陷入困境的地方是將N列中的數據過濾到宏中的今天的日期。下面我選擇了一個隨機數據來看看它的外觀,我試圖做的是找出是否有一種方法可以自動更新到當前日期而不需要手動更改。或者如果我需要採取另一種方法。

ActiveSheet.Range("$B$3:$W$2012").AutoFilter Field:=13, Operator:= _ 
    xlFilterValues, Criteria2:=Array(0, "1/20/2015") 

的日期被格式化爲(「DDD,日期,mmmyy HH:MM - >週二20 Jan15 14:00)我只希望它的基礎上的日期,而不是時間來篩選我也沒有。想改變這種格式,它不是一個電子表格,我創建,它給了我更新的每一天

我是相當新的VBA所以任何幫助,將不勝感激

回答

0

這應該工作;它needn」噸分解成功能或變量「今天年」等,但我做到了,所以你可以看到它是如何工作的。

Sub filter() 
todaysDate = getTodaysDate()    'calls a function which prepares todays date in the format needed 
With ActiveSheet 
    .AutoFilterMode = False 
    .Range("N:W").AutoFilter 
    .Range("N:W").AutoFilter field:=10, Criteria1:=">2"    'whatever your first criteria is (Column W) 
    .Range("N:W").AutoFilter field:=1, Criteria1:="=*" & todaysDate & "*" 
End With 
ActiveSheet.Cells.SpecialCells(xlCellTypeVisible).copy 
Sheets("Sheet2").[a1].PasteSpecial xlPasteValues      'Change to the name of the destination sheet 
End Sub 

Function getTodaysDate() 
todayDay = WeekdayName(Weekday(Now), True) 
todayDayDate = Weekday(Now) 
todayMonth = MonthName(Month(Now), True) 
todayYear = Mid(Year(Now), 3, 2) 
getTodaysDate = todayDay & " " & todayDayDate & " " & todayMonth & todayYear 
End Function 
+0

不得不做一些調整,但這最終運作良好。謝謝你的回覆,對不起,我花了很長時間才找到你。 – Locinine 2014-11-24 15:32:36

+0

考慮投票這個答案,如果它是有用的:) – quantum285 2014-11-24 16:06:20