gpt4 book ai didi

excel - VBA 用户窗体中的 MS Excel 2010 MAXIFS 等效项

转载 作者:行者123 更新时间:2023-12-04 22:30:59 25 4
gpt4 key购买 nike

我创建了一个 Excel 用户表单,以方便将新行的数据输入到契约(Contract)登记册中。我有一个字段,通过在契约(Contract)编号列表(A 列)中查找最大数字然后添加 1 来自动生成一个新的唯一契约(Contract)编号。这个公式完美地工作:

Me.tbContractNumber = Application.WorksheetFunction.Max(Sheet1.UsedRange.Columns(1)) + 1

我现在必须添加一个 IF 标准来过滤掉任何小于“2018000”的契约(Contract)编号。我已经研究出如何在使用 MAXIFS 的普通 Excel 工作簿中执行此操作,但显然 MAXIFS 不是 VBA 中的可用函数?

有人可以为下面的 Excel 公式建议一个等效的 VBA 代码吗?提前谢谢你!
=MAXIFS(A2:A500,A2:A500,"<2018000")+1

编辑 我们的工作计算机运行 2010 年,不允许我添加 MS Office 16.0 对象库,因此 MAXIFS 功能将不起作用。我可以使用以下数组公式,但我从未在 VBA 中使用过数组公式。有人可以向下面的 Excel 公式建议一个等效的 VBA 代码吗?提前谢谢你!
{=MAX(IF(A:A<2018000,A:A)) +1}

最佳答案

如果您无论如何都在寻找最大的数字,您是否需要过滤掉任何低于 2018000 的数字?如果您至少有一个条目等于/高于 2018000,那么无论其他条目如何,您的最终结果都会更高。

我确信有更有效的方法可以做到这一点,但如果你对以下内容感到满意:

Me.tbContractNumber = Application.WorksheetFunction.Max(Sheet1.UsedRange.Columns(1)) + 1

然后尝试:
me.tbContractNumber = Application.WorksheetFunction.MaxIfs(Sheet1.UsedRange.Columns(1), Sheet1.UsedRange.Columns(1), ">" & 2018000) + 1

关于excel - VBA 用户窗体中的 MS Excel 2010 MAXIFS 等效项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52853486/

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