2017-07-31 57 views
2

我正在使用Excel中的表格數據,顯示過去幾個月我的個人預算交易分類帳(列包括交易日期,預算類別,交易金額等)。我可以使用VBA過濾數據以顯示當前月份嗎?

我很想創建一個腳本,它將過濾這些數據,只顯示當前的月的交易數據,無論可能發生的月份如何。通過記錄一個簡單的宏,我可以看到Excel如何寫道,過濾日期列的腳本(在下面的例子中,第3列),爲七月份:

ActiveSheet.Range("A:K").AutoFilter Field:=3, Operator:= _ 
    xlFilterValues, Criteria2:=Array(1, "7/29/2017") 

要在未來使用這個公式,我顯然不想在腳本中硬編碼「7/29/2017」,而是在Excel中使用諸如=MONTH(TODAY())函數組合之類的東西,以便它僅選擇當前月份的交易。但是,每次嘗試運行TODAY函數的上述腳本時,都會出現錯誤(「編譯錯誤:子或函數未定義」)。

我需要創建一個變量來保存月份的值嗎?或者在腳本中使用不同的公式?我不熟悉使用VBA編寫腳本,所以感謝您的幫助!

+0

相關:https://stackoverflow.com/questions/28457071/ vba-excel-autofilter-for-any-date-before-the-current-month –

+0

感謝您的參考! – GeorgeB

回答

1
Range("A:K").AutoFilter Field:=3, Operator:=xlAnd, _ 
Criteria1:=">" & Application.EoMonth(Now, -1), _ 
Criteria2:="<=" & Application.EoMonth(Now, 0) 
  • EoMonth(Now, -1)標誌着上個月月底

  • EoMonth(Now, 0)標誌着當月月底

+0

嗯......當我嘗試運行這個腳本時,我在Excel中出現錯誤,提示「無效的過程調用或參數」。任何想法? – GeorgeB

+0

@應該是由於你的文件中的東西。如果您的工作表沒有得到保護,並且您在C列中有日期,則此陳述應該可以正常工作。 –

+1

有幫助。感謝您的幫助,@ A.S.H。 – GeorgeB

相關問題