2016-10-16 114 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