Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 查找具有条件的最大数字_Excel_Vba - Fatal编程技术网

Excel 查找具有条件的最大数字

Excel 查找具有条件的最大数字,excel,vba,Excel,Vba,我想在VBA中创建一个宏,输入“Cliente”编号,它会在该表中找到与“Cliente”编号匹配的最高“Aditivo”编号 例如: 如果我输入“5”,它应该返回“6” 如果我输入“3”,它应该返回“5” 正如其他人所说,您可以使用工作表公式。但是如果VBA需要,那么。。。无论如何,请使用工作表公式: 尝试一下: Sub findHighestNo() 将ws设置为工作表 设置ws=ActiveWorkbook.Sheets(“Sheet1”) 暗淡的光线和长的一样 lRow=ws.Cells

我想在VBA中创建一个宏,输入“Cliente”编号,它会在该表中找到与“Cliente”编号匹配的最高“Aditivo”编号

例如:

如果我输入“5”,它应该返回“6” 如果我输入“3”,它应该返回“5”


正如其他人所说,您可以使用工作表公式。但是如果VBA需要,那么。。。无论如何,请使用工作表公式:

尝试一下:

Sub findHighestNo()
将ws设置为工作表
设置ws=ActiveWorkbook.Sheets(“Sheet1”)
暗淡的光线和长的一样
lRow=ws.Cells(Rows.Count,1).End(xlUp).Row
尺寸最大值作为范围
设置最大值=ws.范围(“B1:B”和lRow)
Dim cliente:cliente=InputBox(“选择您的客户ID”)
模糊结果
'如果是数字(客户),则
'
'结果=工作表函数.MaxIfs(最大值,最大值偏移量(,-1),客户)
'MsgBox结果,vbInformation,“最大结果”
”“否则呢
“MsgBox”改为输入一个数字
"完"
将数据作为变量
arrData=最大偏移量(,-1)。调整大小(,2)
调宽arrTmp()长度:调宽arrTmp(1到lRow)
如果是数字(客户),则
变暗,变长
对于R=LBound(arrData)到UBound(arrData)
如果arrData(R,1)=CLng(客户),则
arrTmp(R)=arrData(R,2)
如果结束
下一个R
结果=工作表函数.Max(arrTmp)
MsgBox结果,vbInformation,“最大结果”
其他的
MsgBox“改为输入一个数字!”
如果结束
端接头

编辑:添加了获取
MAX
的替代方法,因为
MAXIFS
仅在中可用。

为什么vba,而一个简单的公式可以实现这一点?
=MAXIFS()
将很好地完成这项工作。这里有一个与您的问题类似的问题,显示了公式:它必须在VBA中,因为我所有的代码都是在VBA中完成的VBA@HeitorBadotti-然后在VBA中使用
MAXIFS()
?我试图上载它,但它告诉我“无法获取工作表函数类的MAXIFS属性”嗯。。。这似乎在+中可用。假设您使用的是旧版本的Excel?@HeitorBadotti,它似乎是最新的。如果使用此选项,仍然会出现此错误<代码>子测试MaxIfs():MsgBox工作表函数。MaxIfs(范围(“A1”)、范围(“A2”)、100):End Sub(我能想到的最简单的测试)。好的,我更新了我的Excel,现在是2016年,现在是2019年。。。现在我有了MaxIfs公式。。。我会用它。。。谢谢。。。我不知道新的excel还有很多公式..很棒的东西@HeitorBadotti,如果它能帮你,请接受答案:)