excel - 有没有更有效的方法来编写具有相对单元格引用计算的 VBA?
问题描述
我正在使用 VBA 自动化 Excel 工作表的组件,我很好奇是否有更有效的方法来使用相对单元格引用填充计算。这需要几秒钟来计算超过 1,000 行。有没有办法更有效地做到这一点?
目前我正在做这样的事情来计算一个单元格值,基于上述两个单元格之间的差异:
For Each cell In rng
' get the current row
current_row = cell.Row
' check if we're in the cell that needs the calculation
If ActiveSheet.Range("A" & current_row) = "criteria" Then
' take the difference of the two above cells
cell.Formula = "=OFFSET(" & cell.Address & ", -2, 0) - OFFSET(" & cell.Address & ", -1, 0)"
End If
Next cell
或者,我们可以就地计算:
cell.Value = cell.Offset(-2, 0) - cell.Offset(-1, 0)
但这似乎并没有更快。
我坚持使用的 Excel 格式是我无法更改的非标准矩形格式,所以虽然我知道标准的列格式可以一起解决这个问题,但我正在尝试在现有格式的范围内工作.
解决方案
推荐阅读
- azure-active-directory - Azure AD 加入与 Azure 混合加入设备(下载策略问题)
- android - 没有虚方法 getCellSignalStrength()
- python - 如何在 Tkinter 的单行输出文本小部件中居中文本?
- nlp - 预处理人名的最佳方法是什么?
- java - iText7 NoClassDefFoundError - PdfDocument (com/itextpdf/kernel/pdf/PdfDocument)
- vb.net - 使用 routes.MapPageRoute vb.net Web 应用程序后无法使用对象数据打开 PDF
- powershell - PowerShell,无法弄清楚如何将变量传递给作业
- c# - aps.net MVC 中的 404 错误页面维护错误 url
- selenium-chromedriver - chromedriver HTTP 请求 API 文档
- typescript - TypeORM 中正确键入的数据库查询