- ベストアンサー
VBAで型が一致しないエラーが発生する原因と解決方法
- VBAでコードを実行する際に、「型が一致しません」というエラーメッセージが表示される場合があります。
- このエラーの原因は、変数やオブジェクトの型が正しく一致していないことです。
- 解決方法としては、変数やオブジェクトの型を確認し、正しく設定する必要があります。また、必要な場合はキャストや変換を行うことでエラーを解消することができます。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
所々、ワークシートの指定が無いRangeプロパティが使われているのが原因では? >wsDetail.Range("H10") = wsData.Range("C8").Value * Range("C5").Value ⇒wsDetail.Range("H10") = wsData.Range("C8").Value * ws??????.Range("C5").Value >wsDetail.Range("L10") = wsData.Range("C14").Value _ >* Range("C16").Value * wsMES.Range("C4").Value ⇒wsDetail.Range("L10") = wsData.Range("C14").Value _ ⇒* ws??????.Range("C16").Value * wsMES.Range("C4").Value >wsData.Range("C27") = Application.RoundUp(wsData.Range("C25").Value * 2 * 0.083 * _ >Range("C24").Value * Range("C23").Value, 1) ⇒wsData.Range("C27") = Application.RoundUp(wsData.Range("C25").Value * 2 * 0.083 * _ ⇒ws???????.Range("C24").Value * ws??????.Range("C23").Value, 1) >wsDetail.Range("D13") = Application.WorksheetFunction.Round _ >(wsData.Range("C27").Value * Range("C26").Value * 1.08, 0) ⇒wsDetail.Range("D13") = Application.WorksheetFunction.Round _ ⇒(wsData.Range("C27").Value * ws??????.Range("C26").Value * 1.08, 0) 「??????」の部分に何が入るのかは、質問者さんが判っている筈なので、適切な変数名を書き込む事。 ワークシートの指定が無いRangeは「カレントのアクティブシート」からデータを引っ張ってくるので、そのシートが「想定してないシート」であれば、文字列セルや空白セルからデータを引っ張って来て「掛け算できんぞゴルァ」って事になる。
お礼
なるほど、、、 確かにそうですね(・_・;) ありがとうございました。本当にお世話になりました_(_^_)_ 最後の一文になぜかワロタ(^○^)