Excel VBA 日期之间的计数

2023-12-23

我需要创建一个函数来计算两个日期之间帐号的出现次数。第一个日期基于函数输入,第二个日期提前 3 个月(日期可能不包含在数据集中)。该范围内的日期值的格式为“dd/mm/yyyy h:mm”。由于数据集的大小约为 150,000 行,我想在代码中执行此操作,而不是在指定单元格内粘贴或评估 COUNTIF 公式。

仅引用 AccountNo 变量时工作表函数有效,但添加条件“">=”或“

例如Application.WorksheetFunction.CountIfs(Range("L2:L" & Endrow), AccountNo) > 1 然后 ''''(有效)

该函数需要根据 countif 结果返回一个结果,如下所示。

Thanks,

Function LastWrapUp(Date1 As Date, AccountNo)

Dim Date2 As Date
Dim Endrow As Long

Date2 = DateAdd("M", 3, Date1)
Endrow = Range("A" & Rows.Count).End(xlUp).Row

If Application.WorksheetFunction.CountIfs(Range("A2:A17643"), ">=" & Date1, Range("A2:A" & Endrow), "<" & Date2, Range("L2:L" & Endrow), AccountNo) > 1 Then
    LastWrapUp = "Not Final Wrap Up"
ElseIf Application.WorksheetFunction.CountIfs(Range("A2:A" & Endrow), ">=" & Date1, Range("A2:A" & Endrow), "<" & Date2, Range("L2:L" & Endrow), AccountNo) = 1 Then
    LastWrapUp = "Yes"
Else
    LastWrapUp = "Error"
End If

Debug.Print LastWrapUp

End Function

对于那些可能遇到此问题并且感兴趣的人,解决方案是在 Date1 和 Date 2 变量周围添加 Cdbl 和 Cdate 函数(为了清楚起见,如下所示更改为 Newdate 和 AccountDate 变量)。奇迹般有效。在 VBA 中使用日期格式可能会很痛苦!

Function LastWrapUp(AccountID, AccountType, AccountDate As Date)

'Find if current WrapUp is the last for a given account number within a 3 month period.
'need to include reference to specific sheets

Dim NewDate As Date
Dim LastRow As Long

NewDate = DateAdd("M", 3, AccountDate)

LastRow = Workbooks("Interim Referrals Report.xlsm").Worksheets("SA Wrap Up Data").Range("A" & Rows.Count).End(xlUp).Row

If AccountType = "Dummy ID" Then
    LastWrapUp = "Dummy ID"
ElseIf Application.WorksheetFunction.CountIfs(Workbooks("Interim Referrals Report.xlsm").Worksheets("SA Wrap Up Data").Range("A2:A" & LastRow), ">=" & CDbl(CDate(AccountDate)), Workbooks("Interim Referrals Report.xlsm").Worksheets("SA Wrap Up Data").Range("A2:A" & LastRow), "<" & CDbl(CDate(NewDate)), Workbooks("Interim Referrals Report.xlsm").Worksheets("SA Wrap Up Data").Range("L2:L" & LastRow), AccountID) > 1 Then
    LastWrapUp = "Not Final Wrap Up"
ElseIf Application.WorksheetFunction.CountIfs(Workbooks("Interim Referrals Report.xlsm").Worksheets("SA Wrap Up Data").Range("A2:A" & LastRow), ">=" & CDbl(CDate(AccountDate)), Workbooks("Interim Referrals Report.xlsm").Worksheets("SA Wrap Up Data").Range("A2:A" & LastRow), "<" & CDbl(CDate(NewDate)), Workbooks("Interim Referrals Report.xlsm").Worksheets("SA Wrap Up Data").Range("L2:L" & LastRow), AccountID) = 1 Then
    LastWrapUp = Workbooks("Interim Referrals Report.xlsm").Worksheets("SA Wrap Up Data").Range(AccountID.Address).Offset(0, -4)
Else
    LastWrapUp = "Error"
End If

End Function
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Excel VBA 日期之间的计数 的相关文章

随机推荐

  • 在 nginx 上找不到 Laravel 路由

    当我尝试访问我的测试应用程序时 只有索引路由有效 malte italoborg es http malte italoborg es 如果我尝试访问另一条路线 例如 malte italoborg es admin http malte
  • 我可以使用 jQuery 检查是否至少有一个复选框被选中吗?

    我有以下 HTML 表单 其中可以有许多复选框 单击提交按钮时 我希望用户收到一个 javascript 警报 以检查至少一个复选框 如果未选中 有没有一种简单的方法可以使用 jQuery 来做到这一点
  • Android:API 级别低于 19 的远程 Webview 调试?

    据我所知 远程调试通过chrome inspect已在 API 级别 19 中添加用于 Web 视图 不过 我正在开发一个支持 17 设备的应用程序 只是在 API 19 上 我得到了02 28 00 31 16 569 12332 123
  • 在 R 中将 LASSO 与分类变量结合使用

    我有一个包含 1000 个观察值和 76 个变量的数据集 其中大约 20 个是分类变量 我想对整个数据集使用 LASSO 我知道通过 lars 或 glmnet 在 LASSO 中使用因子变量并不能真正起作用 但是变量太多 并且它们可以采用
  • 半六角形,只有一个元件

    我试图复制以下形状但没有成功 我想我需要一些 before and after伪元素以及以下 css pentagon position relative width 78px height 50px background 3a93d0 使
  • 当我在 Haskell 中编写“show”和“read”时发生了什么?

    以下是 GHCi 的简短文字记录 Prelude gt t read read Read a gt String gt a Prelude gt t show show Show a gt a gt String Prelude gt t
  • 使用计时器显示文本 3 秒?

    是否可以使用计时器在标签中显示文本 3 秒左右 F E 当您保存某些内容并且成功时 您会收到一条短信 成功 3秒后返回原页面 有人知道如何使用标签或消息框来做到这一点吗 是的 有可能 您可以在将标签文本设置为 成功 的位置启动计时器 并将其
  • elasticsearch 5.5突出显示字段不起作用

    我测试了弹性搜索突出显示字段功能 它工作正常 我用了弹性搜索2 4 4 and spring data elasticsearch 2 0 0 RELEASE 示例代码在下面的帖子中 如何使用 Spring data elasticsear
  • 如果该集合不可在进程之间整除,则使用 MPI_Scatter

    我有一个使用 MPI Scatter 和 MPI Gather 的程序 该程序将整数 N 作为输入 并返回从 2 到 N 的质数 我创建一个包含从 2 到 N 的数字的数组 并使用 MPI Scatter 将数组拆分为 N procs 数量
  • GCC 转储预处理器定义

    gcc g 有没有办法从命令行转储其默认预处理器定义 我的意思是像 GNUC STDC 等等 是的 使用 E dM选项而不是 c 示例 将它们输出到标准输出 echo gcc dM E echo clang dM E For C echo
  • Microsoft 整数文字扩展 - 在哪里记录?

    我在 Windows 安装的标准 stdint h 头文件中遇到了一些整数文字 文字具有以下形式的后缀 i8 ui8 i16 ui16 i32 ui32 i64 ui64 我以前遇到过 i64 形式的后缀 但从未遇到过任何其他形式的后缀 我
  • 尝试改进 Encode::decode 警告消息:$SIG{__WARN__} 处理程序中的段错误

    我正在尝试改进发出的警告消息Encode decode https metacpan org pod Encode FB WARN 我希望它打印正在读取的文件的名称以及在该文件中找到格式错误的数据的行号 而不是打印模块的名称和模块中的行号
  • Oracle STANDARD_HASH 在 PLSQL 中不可用?

    我正在尝试在 PL SQL 中使用 STANDARD HASH Oracle 12c 函数 但似乎不可用 SQL gt exec dbms output put line STANDARD HASH test BEGIN dbms outp
  • 一个数据流作业内的并行管道

    我想在 GCP 上的一个数据流作业中运行两个并行管道 我已经创建了一个管道 它工作得很好 但我想要另一个管道而不创建另一份工作 我已经搜索了很多答案 但找不到任何代码示例 如果我这样运行它就不起作用 pipe1 run pipe2 run
  • 在 python 中使用组合来处理非常大的序列

    我正在尝试确定 87 个不同字符串的所有组合 这些组合可以组成 29 个元素的序列 我在 python 中使用组合来执行此操作 如果序列只有 4 个元素长 但它无法处理 29 个元素 则效果很好 这是我正在使用的代码 combos iter
  • 如果背景不透明,ListViewItem 不会突出显示

    我有一个带有自定义渐变背景的 ListViewItem 默认选择器不再突出显示这些行 仅当我将背景设置为透明时 突出显示才有效 如果没有这种改变 我怎样才能获得亮点 这是我的列表视图
  • Git:准备好真正的合并提交后,如何创建一个简单的提交?

    调用后git merge no commit
  • 保持远程桌面会话“活动”[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在使用 AutoIt 来自动化 GUI 操作 使用 RDP 连接到运行要自动化的应用程序的计算机 每当我最小化 RDP 窗口 使用 m
  • 监控进程对每个CPU核心的使用情况

    有没有办法查询或计算CPU使用率单一进程 per 每个核心分别地 例如 名称 核心1 核心2 核心3 核心4火狐 exe 0 5 0 1 0 2 0 3 我知道一个名为 Process Explorer 由 Mark Russinovich
  • Excel VBA 日期之间的计数

    我需要创建一个函数来计算两个日期之间帐号的出现次数 第一个日期基于函数输入 第二个日期提前 3 个月 日期可能不包含在数据集中 该范围内的日期值的格式为 dd mm yyyy h mm 由于数据集的大小约为 150 000 行 我想在代码中