- 締切済み
【エクセル VBA マクロ】
シートAの日付を確認してデータをコピーし、シートBの該当する日付の列に売り上げを貼り付けるというマクロを組みたいです。 他の方達のを参考にしながら作成しましたが、実行をすると「エラー1004」 Matcheプロパティが見つからないというエラーが出ます。 どなたか原因と対策を教えてください。 Sub() Sheets("シートA").Select Range("J3:J10000").Select ※売上データ Selection.Copy 検査値 = Range("R2").Value ※日付データ Sheets("シートB").Select Set 検索範囲 = Range("J4:AN4") ※日付データ 列 = Application.WorksheetFunction.Match(検査値, 検索範囲, 0) Cells("4, 9" + 列).Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,SkipBlanks:False, Transpose:=True End Sub
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- angel_Z
- ベストアンサー率66% (12/18)
こんにちは。 >Cells("4, 9" + 列).Select は間違っています。 Cells(4, 9 + 列).Select です。 >Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,SkipBlanks:False, Transpose:=True は、 Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,SkipBlanks:=False, Transpose:=True ですが、このままのコードの書き方ではエラーが起きます。 シートAのRange("J3:J10000")の売上データは一日の合計値ですか? でしたら、 合計 = Application.WorksheetFunction.Sum(Range("J3:J10000")) Match関数は、検索値がない時はエラーになり動きません。 On Errorステートメントを使って、エラーの回避をします。 Sub() On Error GoTo ErrorHandler Sheets("シートA").Select 合計 = Application.WorksheetFunction.Sum(Range("J3:J10000")) 検査値 = CStr(Range("R2").Value) '日付データ Sheets("シートB").Select 検索範囲 = Range("J4:AN4") '日付データ 列 = Application.WorksheetFunction.Match(検査値, 検索範囲, 0) Cells(5, 9 + 列)= 合計 Exit Sub ErrorHandler: MsgBox("該当無し") End Sub みたいな感じ? 参考URL http://allabout.co.jp/gm/gc/297725/2/ http://kabu-macro.com/word/a-z/pastespecial.html http://www.eurus.dti.ne.jp/yoneyama/Excel/vba/vba_ws_kansu.html