在 VBA Excel 中使用 FormulaR1C1 编写 IF 语句

发布于 2025-01-06 22:14:12 字数 245 浏览 1 评论 0 原文

我有以下公式 =IF((GLOBAL_DATE-30) 我想使用 VBA 中的 FormualR1C1 将其写入特定单元格。 (GLOBAL_DATE 是另一张纸上的命名单元格)

谢谢

I have the following formula
=IF((GLOBAL_DATE-30)<G2,"1 Month",IF((GLOBAL_DATE-60)<G2,"2 Month",IF((GLOBAL_DATE-90)<G2,"3 Month","Older Than 3 Months")))
and I would like to write this into specific cells using the FormualR1C1 in VBA.
(the GLOBAL_DATE is a named cell on another sheet)

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

青瓷清茶倾城歌 2025-01-13 22:14:12

选择具有该公式的单元格。在 VBE 中,转到“立即窗口”并键入

?Activecell.FormulaR1C1

并按 Enter 键。这将为您提供公式的 R1C1 翻译。

Select the cell that has that formula. In the VBE, go to the Immediate Window and type

?Activecell.FormulaR1C1

and press enter. That will give you the R1C1 translation of your formula.

一梦浮鱼 2025-01-13 22:14:12

这是我使用宏记录器得到的结果:

ActiveCell.FormulaR1C1 = _
    "=IF((GLOBAL_DATE-30)<R[1]C[6],""1 Month"",IF((GLOBAL_DATE-60)<R[1]C[6],""2 Month"",IF((GLOBAL_DATE-90)<R[1]C[6],""3 Month"",""Older Than 3 Months"")))"

即使用相对单元格地址(R[1]C[6] 是 ActiveCell 下面一行和右侧 6 列的单元格。或者,您可以通过替换来使用绝对地址R[1]C[6] by R2C7(对于第 2 行,第 7 列 = G2)。

This is what I get using the Macro Recorder:

ActiveCell.FormulaR1C1 = _
    "=IF((GLOBAL_DATE-30)<R[1]C[6],""1 Month"",IF((GLOBAL_DATE-60)<R[1]C[6],""2 Month"",IF((GLOBAL_DATE-90)<R[1]C[6],""3 Month"",""Older Than 3 Months"")))"

That is using relative cell addresses (R[1]C[6] is the cell one row below and 6 columns to the rigth from the ActiveCell. Alternatively, you can use absolute adresses by replacing R[1]C[6] by R2C7 (for row 2, column 7 = G2).

望她远 2025-01-13 22:14:12

您可以轻松地使用 VBA 将在工作表中输入的公式转换为适合 VBA 的语法。我曾经为此写过一个子目的。

You can easily use VBA to translate those formulae that you entered in a sheet into a sytax that's suitable for VBA. I once wrote a sub for that purpose.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文