我在使用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中有五个不同的位置,在列K中有数百个不同的日期。上述公式在Excel中运行良好并返回正确的值。我花了好几个小时尝试使用我的用户表单在VBA中使用它,但不断收到各种错误。第一部分不是问题,但是当我进入&amp; today功能时它就会崩溃。从我所看到的&amp; today功能在VBA中不可用,&amp; 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作为使用多个标准。答案 0 :(得分:0)
您必须将单元格的值读取到VBA代码中。我建议你使用Excel.Range对象来做到这一点。它可以解释范围,如Excel的编辑行,如
Dim foo as Excel.Range
设置foo = yourworksheet.Range(“A1:B3”)
通过遍历单元格,将日期类型数据读入VBA日期类型变量。
检查读取数据与当前日期之间的关系。可以使用 DateTime.Now 功能读取当前日期。
根据决定增加变量