使用VBA在excel公式中增加包含单元格引用的变量

Posted

技术标签:

【中文标题】使用VBA在excel公式中增加包含单元格引用的变量【英文标题】:Incrementing a variable containing a cell reference in excel formula using VBA 【发布时间】:2019-11-09 21:42:20 【问题描述】:

我正在构建一个宏,以允许我在电子表格中或向下复制公式,其中不同的单元格引用沿不同方向移动(例如,第一个单元格引用是静态的(就像用 $ 固定一样),第二个将一个向右移动每列(例如 Excel 标准),每列第三个向下移动,第四个向右移动 3,等等)。这些是非常大、非常复杂的公式,因此这应该可以节省时间/用户错误,手动编辑公式以用于使用 $ 未涵盖的所有内容并在单元格之间拖动公式。

我有提取所有单元格引用的宏,选择单元格引用需要移动的方向和多少单元格的选项,每个单元格向右/向下复制它,然后我计划用更新单元格引用并将其粘贴到相应的单元格中。

我正在努力解决的问题是如何增加单元格引用而不分解它们,更新 Alpha 或数字(如果更新是交叉或向下),然后重新组装它们以将它们放回公式中。

有些单元格引用会包含 $,有些不会,有些会是范围。是否有 VBA 标准方法来获取包含单元格引用和递增行/递增列的变量?

如果需要,我可以拆解引用以达到所需的结果,我只是想知道是否有更直接的方法。

【问题讨论】:

使用替换来替换您模仿行/列引用的某个字符。也许是一个问号? 一个有趣的建议,如果没有更直接的功能可以帮助我更新参考,谢谢。 看看FormulaR1C1,如Activecell.FormulaR1C1 对此的初步研究看起来对我的问题非常有用。这是我以前看过但从未真正理解过的东西,看起来我即将变得更加熟悉!谢谢。 不客气。祝你好运!为了将来参考,您可以直接发表评论,如@dglancy,然后会通知此人。 【参考方案1】:

您可以使用增加计数器的 for 循环,例如 对于 A 列的最后一行 带活动表 最后一行 = .cells (rows.count,”A”).end(clip).row 结束于 对于 I =1 到最后一行 Vartest = activesheet.range(“A” & I).value 接下来我

如果有帮助,请告诉我。否则请尝试粘贴一些有关您正在做什么的代码。将尝试提供帮助

【讨论】:

以上是关于使用VBA在excel公式中增加包含单元格引用的变量的主要内容,如果未能解决你的问题,请参考以下文章

excel2007 VBA中如何引用指定的单元格地址?

excel或者vba,怎样将工作簿内所有橙色单元格公式转换为数值?

更改单元格引用的 VBA 到 FillDown 公式

EXCEL VBA判断单元格是不是包含某字符

Excel 公式或规则或 vba 比较 2 个单元格并仅突出显示差异

使用 VBA 将 Excel 公式写入单元格