2016-10-16 85 views
-1

我想使用vba将公式插入到单元格中。此公式需要引用activecell.row范围或动态引用。使用VBA将公式插入单元格?

我使用下面的VBA代码:

Range("P" & ActiveCell.Row).Formula = "=IF(OR(G & ActiveCell.Row <>"",""H"" & ActiveCell.Row <>"",""I"" & ActiveCell.Row <>"",""J"" & ActiveCell.Row <>"",""M"" & ActiveCell.Row <>""),TODAY(),"")" 

我得到一个应用程序定义或对象定义的错误。请有人能告诉我我要去哪里?提前致谢。

回答

-1

我认为问题是用双引号。您有:

...).Formula = "=IF(OR(G & ActiveCell.Row <>"",""H"" & ActiveCell..." 

虽然它应该是:

...).Formula = "=IF(OR(G & ActiveCell.Row <>"""",""""H"""" & ActiveCell..." 

记住:在一个字符串包围在 - “ - 字符的字符串中相同字符的任何外观必须加倍

虽然没有检查,但我确信这是一个错误(也许不是错误)。

+0

感谢我尝试过这个建议,但仍然得到同样的错误。 –

1

假设你想要的是这个公式:

=IF(OR(G1<>"",H1<>"",I1<>"",J1<>"",M1<>""),TODAY(),"") 

试试这个

Range("P" & ActiveCell.Row).Formula = "=IF(OR(G" & ActiveCell.Row & "<>"""",H" & ActiveCell.Row & "<>"""",I" & ActiveCell.Row & "<>"""",J" & ActiveCell.Row & "<>"""",M" & ActiveCell.Row & "<>""""),TODAY(),"""")" 
1

我会使用R1C1符号和CountA()简化位

Range("P" & ActiveCell.row).FormulaR1C1 = "=if(counta(RC7:RC10,RC13)>0,Today(),"""")" 
+0

@ M.Doe,你通过了吗? – user3598756

+0

@ M.Doe,你会很高兴向正在帮助你的人提供适当的反馈。谢谢 – user3598756