gpt4 book ai didi

vba - 结合计数在 VBA 中的今天功能等效

转载 作者:行者123 更新时间:2023-12-04 21:01:48 26 4
gpt4 key购买 nike

我在 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 中工作,但不断收到各种错误。第一部分不是问题,但是一旦我使用 &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 作为使用多个标准。

最佳答案

  • 您必须将单元格的值读取到您的 VBA 代码中。我建议您使用 Excel.Range 对象来做到这一点。它可以像 Excel 的编辑行一样解释范围,比如

    将 foo 调暗为 Excel.Range

    设置 foo = yourworksheet.Range("A1:B3")
  • 通过遍历单元格将日期类型数据读入 VBA 日期类型变量。
  • 检查读取数据与当前日期之间的关系。可以使用 DateTime.Now 函数读取当前日期。
  • 根据决策增加变量
  • 关于vba - 结合计数在 VBA 中的今天功能等效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34622186/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com