excel - Excel宏R1C1公式不保留值
问题描述
我有一个 excel 宏,它创建一个新的 excel 表并用可变数量的行填充它。我计算了存储在变量中的行数。我正在使用 R1C1 公式根据我的行数将两个单元格相乘。在宏中,公式看起来是正确的(如果我添加断点并对其进行监视),但是当宏完成时,单元格中的公式不正确。
VB代码生成公式:
MainSheet.Cells(RowCount + 6, 6).FormulaR1C1 = "=R[" & RowCount + 3 & "]C" & "*" & "R[" & RowCount + 4 & "]C"
观察带有断点的公式会发现:“=R[430]C*R[431]C” 宏完成后的实际单元格数据:=F863*F864。我需要这是 =F430*F431
解决方案
通过使用[]
你告诉vba你想要相对定位。这意味着它将添加(或减去)中的数字[]
到放置公式的当前行和/或列中。
删除行数:
MainSheet.Cells(RowCount + 6, 6).FormulaR1C1 = "=R[3]C*R[4]C"
推荐阅读
- c++ - 排序 std::reference_wrapper 数组时出现问题,引用向量
- assembly - 为什么我应该在这个循环模拟中使用堆栈?
- docker - 如果服务已经在运行,我如何指示 docker-compose 不启动它?
- regression - 如何使用稳健的线性回归或其他用户选择的模型去趋势 xarray.DataSet(或 xarray.DataArray)?
- c# - LINQ 组总和查询中的 Bool to int
- ruby-on-rails - 如何为 devise_intiable 邮件创建预览?
- android - 如何在Android Studio中使图像中的特定颜色透明?
- python - 在 TensorFlow 中显示单个数据集元素
- terragrunt - terragrunt 可以通过使用 bash 脚本来支持后端变量吗?
- ansible - Ansible - 如何组合项目