我需要我的宏输入以下公式:
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)不同。 (这不是一个错字)
感谢。
答案 0 :(得分:0)
使用逗号代替分号来分隔IF语句的参数。
您的公式似乎具有循环关系;公式进入单元格A3并参考单元格A3 ...我会留给你解决。
始终使用Option Explicit
。将该行放在模块的顶部后,您将收到错误:Variable not defined
的变量:A,AA,可能还有U_NEDC_COLD_online
和U_NEDC_COLD_online_0
您可能打算用作字符串文字。 (有关解决方法,请参阅下一个项目符号)
如果U_NEDC_COLD_online_0
确实是变量/常量名,并且不等于您在别处使用的字符串文字(例如U_NEDC_COLD_online_0
),那么您应该将变量名更改为其他名称!
如果动态构建公式的唯一原因是容纳变量行索引,请使用此变量来替换变量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 & ")"
如果您甚至不需要变量行索引,只需使用:
Worksheets("U_NEDC_COLD_online_0").Range(A3).Formula = "=IF($AA3=U_NEDC_COLD_online!AA3, U_NEDC_COLD_online!A3, A3)"