Dennisさんと同じエラーが発生しましたhereしかし、彼が提供した答えは単純にいくつかのモジュールを削除したり、しかし、私は1つのモジュールしか持っていません。私はまったく新しいワークブックを作成し、それを新鮮なスタートのためにコピーすることを試みましたが、それも何もしませんでした。 マクロを記録した後に実行すると、「アプリケーション定義またはオブジェクト定義」エラーが発生します。数式は、マクロの外部で完全に正常に動作しますが、マクロの一部として必要になります。ここで構文エラー(記録時)とオブジェクト定義エラー(実行時)のためにVBAを実行できません
は、記録された優れもので、これは私にエラーを与えている私のマクロの行です:
ActiveCell.FormulaR1C1 = _
"=IF(COUNTA(RC[-15]:RC[-2])=2,RC[-14],IF(COUNTA(RC[-15]:RC[-2])=4,CONCATENATE(RC[-14],"":"",RC[-12]),IF(COUNTA(RC[-15]:RC[-2])=6,CONCATENATE(RC[-14],"":"",RC[-12],"" - "",RC[-10]),IF(COUNTA(RC[-15]:RC[-2])=8,CONCATENATE(RC[-14],"":"",RC[-12],"":"",RC[-10],"" - "",RC[-8]),IF(COUNTA(RC[-15]:RC[-2])=10,CONCATENATE(RC[-14],"":"",RC[-12],"":"",RC[-10],"":"",RC[-8],"" - """ & _
","""")))))"
それは、そのセルを活性化する、その前にRange("Q3").Select
を持っています。さらに、元の数式に対して記録された内容を見ると、K3)
またはRC[-6]),
のままになっていることがわかります。私はそれを追加しようとしましたが、それは助けになりませんでした。
オリジナルフォーミュラ:
=IF(COUNTA(B3:O3)=2,C3,IF(COUNTA(B3:O3)=4,CONCATENATE(C3,":",E3),IF(COUNTA(B3:O3)=6,CONCATENATE(C3,":",E3," - ",G3),IF(COUNTA(B3:O3)=8,CONCATENATE(C3,":",E3,":",G3," - ",I3),IF(COUNTA(B3:O3)=10,CONCATENATE(C3,":",E3,":",G3,":",I3," - ",K3),"")))))
私もconcatenate
せずに式を試してみましたが、それはどちらか助けていません。それは以下の通りです:
ActiveCell.FormulaR1C1 = _
"=IF(COUNTA(RC[-15]:RC[-2])=2,RC[-14],IF(COUNTA(RC[-15]:RC[-2])=4,RC[-14]&"":""&RC[-12],IF(COUNTA(RC[-15]:RC[-2])=6,RC[-14]&"":""&RC[-12]&"" - ""&RC[-10],IF(COUNTA(RC[-15]:RC[-2])=8,RC[-14]&"":""&RC[-12]&"":""&RC[-10]&"" - ""&RC[-8]),IF(COUNTA(RC[-15]:RC[-2])=10,RC[-14]&"":""&RC[-12]&"":""&RC[-10]&"":""&RC[-8]&"" - ""&RC[-6],"""")))))"
編集:ここでは、直接上記のコードであり、P3式は正常に動作します:
Range("P3").Select
ActiveCell.FormulaR1C1 = _
"=INDEX(RC[-14]:RC[-1],1,IF(COUNT(RC[-14]:RC[-1])=1,COUNT(RC[-14]:RC[-1]),COUNT(RC[-14]:RC[-1])*2-1))"
Range("P3").Select
Range("P3").AutoFill Destination:=Range("P3:P" & LastRow)
Range("Q3").Select
ActiveCell.FormulaR1C1 = _
"=IF(COUNTA(RC[-15]:RC[-2])=2,RC[-14],IF(COUNTA(RC[-15]:RC[-2])=4,RC[-14]&"":""&RC[-12],IF(COUNTA(RC[-15]:RC[-2])=6,RC[-14]&"":""&RC[-12]&"" - ""&RC[-10],IF(COUNTA(RC[-15]:RC[-2])=8,RC[-14]&"":""&RC[-12]&"":""&RC[-10]&"" - ""&RC[-8]),IF(COUNTA(RC[-15]:RC[-2])=10,RC[-14]&"":""&RC[-12]&"":""&RC[-10]&"":""&RC[-8]&"" - ""&RC[-6],"""")))))"
Range("Q3").Select
Range("Q3").AutoFill Destination:=Range("Q3:Q" & LastRow)
私は、Microsoft Office 2013を使用していますし、できるだけ早くUtilitesをアドオンがありますそれはまったく役に立たない場合、前に私に問題を引き起こしたことはありません。
ランダムな推測ですが、「アクティブセル」は使用しません。 – findwindow
私は式を挿入するために他に何を使うべきか分かりません。私はいつもそれを記録しており、常にそれを使用しています。 – Excellerator
記録しないでください。または、録音を編集する〜_ ^「アクティブセル」の代わりに、「ブック」を実行します。ワークシート。レンジ。編集:オブジェクト定義エラーはオブジェクトが不良であることを意味します。この場合、オブジェクトは 'activecell'なので、指定する必要があります。 – findwindow