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

标签 vba excel

我在 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/

    相关文章:

    excel - 来自动态范围的 VBA 范围值

    python - 无法读取所需的 excel 文件作为 Python 中的输出

    wcf - Excel-VBA REST WCF 在第一次调用时工作,但后续调用返回缓存的(非当前)数据

    vba - 在多个 Excel 工作表上运行宏

    vba - 如何使用 VBA 刷新数据透视表

    vba - 使用自定义 HTML 代码替换 Outlook 下的文本选择的替代方法

    vba - 从 Access 2010 VBA 打开 Excel 2010 文件

    Excel VBA。这个宏会产生随机排列吗?

    excel - 刷新数据透视表但不刷新外部数据源

    C# SSIS 脚本任务 - 格式化 Excel 列时添加千位分隔符