本帖最后由 Richard.Ma 于 2021-6-28 12:34 编辑
您好,帮您和研发确认了一下
第一个问题,再worksheet上提供了Changed事件,可以用来跟踪单元格值变化,事件中可以通过e.Range获取变化的Range
第二个问题
实际上你这边目前是给1.4W行设置数组公式,和研发沟通给出了一个优化办法,
由于都是相同的公式,只是单元格相对引用,可以先给第一行这个单元格设置公式,后面的行都用复制方法复制此公式,可以将时间优化到3.9秒
修改你这边代码中135行部分,具体代码如下
- worksheet2.Range["H2"].FormulaArray = "=INDEX(Sheet1!$F$2:$F$613,MATCH(I2,Sheet1!$G$2:$G$613,0))";
- worksheet2.Range["H2"].Copy(worksheet2.Range[$"H3:H13456"], PasteType.Formulas);
复制代码
第三个问题,
通过Precedents和Dependents可以获取,Precedents是被引用的单元格,Dependents是受影响的单元格,也就是你需要的
https://demo.grapecity.com.cn/sp ... and_dependents.html
第四个问题,
[size=13.0667px]EnableCalculation 对于数组公式来说也是生效的,按照你这种循环,如果不设置workbook.EnableCalculation = false,可能至少需要几十秒以上的时间
|