使用VBA在公式中指定单元格和工作表

时间:2012-01-31 11:57:06

标签: vba formula

我需要我的宏输入以下公式:

Worksheets("U_NEDC_COLD_online_0").Cells(3, A).formula = "=IF(" & Worksheets (U_NEDC_COLD_online_0).Cells(3, AA).Value & "=" & Worksheets(U_NEDC_COLD_online).Cells(3, AA).Value & ";" & Worksheets(U_NEDC_COLD_online).Cells(3, A).Value & ";" & Worksheets(U_NEDC_COLD_online_0).Cells(3, A).Value & ")"

我也尝试使用".Address"属性的相同公式,但它不起作用。我做错了什么?

最终公式应如下所示:

=IF($AA3 = U_NEDC_COLD_online!$AA3; U_NEDC_COLD_online!A3; U_NEDC_COLD_online_0!A3)

PS:工作表(“U_NEDC_COLD_online_0”)与工作表(U_NEDC_COLD_online_0)不同。 (这不是一个错字)

感谢。

1 个答案:

答案 0 :(得分:0)

  1. 使用逗号代替分号来分隔IF语句的参数。

  2. 您的公式似乎具有循环关系;公式进入单元格A3并参考单元格A3 ...我会留给你解决。

  3. 始终使用Option Explicit。将该行放在模块的顶部后,您将收到错误:Variable not defined的变量:A,AA,可能还有U_NEDC_COLD_onlineU_NEDC_COLD_online_0您可能打算用作字符串文字。 (有关解决方法,请参阅下一个项目符号)

  4. 如果U_NEDC_COLD_online_0确实是变量/常量名,并且不等于您在别处使用的字符串文字(例如U_NEDC_COLD_online_0),那么您应该将变量名更改为其他名称!

  5. 如果动态构建公式的唯一原因是容纳变量行索引,请使用此变量来替换变量3:

    Worksheets("U_NEDC_COLD_online_0").Cells(3, 1).Formula = "=IF($AA" & 3 & "=" & "U_NEDC_COLD_online!AA" & 3 & ", U_NEDC_COLD_online!A" & 3 & ", A" & 3 & ")"

  6. 如果您甚至不需要变量行索引,只需使用:

    Worksheets("U_NEDC_COLD_online_0").Range(A3).Formula = "=IF($AA3=U_NEDC_COLD_online!AA3, U_NEDC_COLD_online!A3, A3)"