簡體   English   中英

ActiveCell.FormulaR1C1上的VBA運行時錯誤1004

[英]VBA Run-Time Error 1004 on ActiveCell.FormulaR1C1

Excel單元格中的公式“ = DATEVALUE(IF(ISERROR(INT(LEFT(MID(D2,FIND(“ /”,D2)+ 1,LEN(D2)),FIND(“ /”,MID(D2,FIND( “ /”,D2)+ 1,LEN(D2))-1)))),DAY(D2),INT(LEFT(MID(D2,FIND(“ /”,D2)+ 1,LEN(D2)) ,FIND(“ /”,MID(D2,FIND(“ /”,D2)+ 1,LEN(D2)))-1))))&“ /”&IF(MID(D2,LEN(D2)-4, 1)=“ /”,INT(LEFT(D2,FIND(“ /”,D2)-1)),MONTH(D2))&“ /”&IF(MID(D2,LEN(D2)-4,1) =“ /”,INT(RIGHT(D2,4)),YEAR(D2)))“工作正常。

下面的VBA代碼是使用Excel 2007中的“ Record-Macro”選項自動生成的,目的是實用地導出上述公式。

但是,在運行VBA相同的代碼時,出現運行時錯誤'1004'。 請幫助糾正此問題。 VBA代碼:

Sub Macro()

' Macro2 Macro

    Range("C2").Select
    ActiveCell.FormulaR1C1 = _
        "=DATEVALUE(IF(ISERROR(INT(LEFT(MID(RC[1],FIND(""/"",RC[1])+1,LEN(RC[1])),FIND(""/"",MID(RC[1],FIND(""/"",RC[1])+1,LEN(RC[1])))-1))),DAY(RC[1]),INT(LEFT(MID(RC[1],FIND(""/"",RC[1])+1,LEN(RC[1])),FIND(""/"",MID(RC[1],FIND(""/"",RC[1])+1,LEN(RC[1])))-1)))&""/""&IF(MID(RC[1],LEN(RC[1])-4,1)=""/"",INT(LEFT(RC[1],FIND(""/"",RC[1])-1)),MONTH(RC[1]))&""/""&IF(MID(RC[1],LEN(" & _
        ",1)=""/"",INT(RIGHT(RC[1],4)),YEAR(RC[1])))"
    Selection.AutoFill Destination:=Range("C2:C3239")
    Range("C2:C3239").Select

End Sub

當您將其放入VBA中時,您丟失了該公式的最后D2)-4部分,從而使該公式無效。

Sub Macro()

' Macro2 Macro

Range("C2").Select
ActiveCell.FormulaR1C1 = _
    "=DATEVALUE(IF(ISERROR(INT(LEFT(MID(RC[1],FIND(""/"",RC[1])+1,LEN(RC[1])),FIND(""/"",MID(RC[1],FIND(""/"",RC[1])+1,LEN(RC[1])))-1))),DAY(RC[1]),INT(LEFT(MID(RC[1],FIND(""/"",RC[1])+1,LEN(RC[1])),FIND(""/"",MID(RC[1],FIND(""/"",RC[1])+1,LEN(RC[1])))-1)))&""/""&IF(MID(RC[1],LEN(RC[1])-4,1)=""/"",INT(LEFT(RC[1],FIND(""/"",RC[1])-1)),MONTH(RC[1]))&""/""&IF(MID(RC[1],LEN(" & _
    "RC[1])-4,1)=""/"",INT(RIGHT(RC[1],4)),YEAR(RC[1])))"
Selection.AutoFill Destination:=Range("C2:C3239")
Range("C2:C3239").Select
End Sub

FWIW,我通過在插入您在Excel中表示有效的公式的同時記錄宏來解決錯誤,然后直觀地將該宏與您使用的宏進行比較。 很明顯,差異在哪里,因為它是第二條語句繼續行的開頭。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM