vba - 带有 application.worksheetfunction 的数组上的不匹配错误
问题描述
目前我正在尝试采用复杂的 excel 公式并将其转换为application.worksheetfunction
VBA 进程,以便在代码执行期间对其进行评估。
我之前已经问过这个问题,但仍然很难确定我需要在哪里/需要修改什么才能使其正确执行
基本上,我正在采用下面的 excel 公式并努力将其转换为具有动态单元格范围的 VBA 代码(也是$AM41
动态的,并且会根据代码定义进行更改)
=SUMIFS($N:$N,$B:$B,INDEX($B:$B,MAX(INDEX(($C:$C=$AM41)*ROW($C:$C),0))),$C:$C,$AM41)
到目前为止,我的代码就是这样
Dim mws As Worksheet
Dim wf As WorksheetFunction
Dim mwsN As Range
Dim mwsC As Range
Dim mwsB As Range
Dim mwsLast As Range
Set wf = Application.WorksheetFunction
Set mws = Sheets("Marks")
Set mwsN = mws.Range("N:N")
Set mwsC = mws.Range("C:C")
Set mwsB = mws.Range("B:B")
LastMWSR = mws.Cells(mws.Rows.Count, "B").End(xlUp).Row
ClastMWSC = mws.Cells(1, mws.Columns.Count).End(xlToLeft).Column
Set mwsLast = mws.Cells(LastMWSR + 1, ClastMWSC - 1)
'error, is thrown just below this line
mws.Cells(LastMWSR + 1, ClastMWSC).Value = _
wf.SumIfs(mwsN, mwsB, wf.Index(mwsB, wf.Max(wf.Index((mwsC = mwsLast) * wf.Row(mwsC), 0))), mwsC, mwsLast)
我相信这里会抛出不匹配错误
wf.Max(wf.Index((mwsC = mwsLast)
我不知道如何将该数组传达为 VBA 术语。
谁能帮助说明如何使这种动态化并清除不匹配错误?
解决方案
推荐阅读
- html - 我的引导主题的特殊部分有 RTL 问题
- r - 如何选择图像的特定部分以使用 R 确定 RGB 值?
- php - 更新数据库值时,Laravel 5.6 类 stdClass 的对象无法转换为字符串
- ios - 我可以在反应原生自定义模块IOS中使用swift和objective c的组合吗?
- java - Liquibase:diff - ZonedDateTime 上的生成器注释 @CreationTimestamp 不支持的属性类型
- django - 当您提交基于类的视图时,后台会发生什么?
- c# - Xamarin Forms Messaging Center 到一个 JSON
- jenkins-pipeline - 一次锁定 Jekinsfile 管道中的资源以用于并行和顺序阶段
- javascript - 是否允许在函数和包含的每个循环中使用 jQuery $(this) 选择器两次?
- c++ - GCC 无法区分 operator++() 和 operator++(int)