簡體   English   中英

在VBA中與countifs結合的今天功能等效

[英]Today function equivalent in VBA in combination with countifs

我在Excel / VBA中使用countifs公式時遇到一些問題。 我的公式在Excel中工作正常,但理想情況下,我想在VBA中將其與表單一起使用。 這是在Excel中有效的公式:

=COUNTIFS(Sheet1!A:A,"Place",Sheet1!K:K,"<"&TODAY()) 

將計算過去的名稱地點

=COUNTIFS(Sheet1!A:A,"place",Sheet1!K:K,">"&TODAY())

將計算當前的名稱地點

我在A列中有五個不同的Places,在K列中有數百個不同的日期。以上公式在Excel中運行良好,並返回正確的值。 我已經花了數小時試圖通過我的用戶表單在VBA中使用它,但是不斷出現各種錯誤。 第一部分不是問題,但是一旦我進入&today函數,它就會崩潰。 從我可以看到,&today函數在VBA中不可用,&Date似乎是推薦的。 我已經嘗試過了,但仍然無處可去。 我在這里缺少一個(或幾個)技巧,我真的很想在VBA中使用它而不是在Excel中使用當前公式。 然后,返回的結果將顯示在表單上的文本框中。

歡迎所有想法和反饋!

第二次編輯

================================

感謝您的快速回復! 這是我在VBA中使用的實際代碼

 'Count events by area'
Dim ListLondon As Long

ListLondon = .CountIf(Range("a1:a1998"), "London"), ("Sheet1!K1:K1998"), "<" & Date)

End With

Me.TextBox1 = ListLondon

我知道計數的第二部分是否完全不正確,因為日期是我現在留下的方式。 我真的很希望在最后使用當前的布局和有效的日期/今天代碼。 請在這里告訴我我做錯了什么!

====

糟糕-已經可以看到一個錯誤-但最初的問題仍然存在於日期問題上。 我應該使用countifs作為使用多個條件。

  1. 您必須將單元格的值讀取到VBA代碼中。 我建議您使用Excel.Range對象執行此操作。 它可以像Excel的編輯行一樣解釋范圍,例如

    Dim foo as Excel.Range

    設置foo = yourworksheet.Range(“ A1:B3”)

  2. 通過遍歷單元格將Date類型數據讀入VBA Date類型變量。

  3. 檢查讀取的數據和當前日期之間的關系。 可以使用DateTime.Now函數讀取當前日期。

  4. 根據決策增加變量

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM