Excelセル内の数式"= DATEVALUE(IF(ISERROR INT(LEFT)MID(D2、FIND("/"、D2)+1、LEN(D2) )、DAY(D2)、INT(LEFT(MID(D2、FIND(1))、FIND(「/」、 FIND( "/"、MID(D2、FIND( "/"、D2)+1、LEN(D2))))))& "/ (D2、FIND( "/"、D2)-1))、MONTH(D2))& "/"、 "&" IF(MID(D2、LEN(D2)-4,1) & IF(MID(D2、LEN(D2)-4,1)= "/"、INT(RIGHT(D2,4))、YEAR(D2)) "は完璧に機能します。ActiveCell.FormulaR1C1でのVBAランタイムエラー1004
以下のVBAコードはExcel 2007の "レコードマクロ"オプションを使用して自動的に生成され、上記の式を実用的に導出します。
しかし、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