[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『マクロ実行時エラー[1004]』(ASK)
過去ログ漁りつつマクロを組んでみたらエラーが出て対処が解りません。 マクロ駆け出しの私に救いの手を下さい><
過去ログ https://www.excel.studio-kazu.jp/cgi-bin/kazuwiki2.cgi?mycmd=read&mypage=[[20060807162450]] と同じエラー文が表示されます。
作ってみたコードが、
Sub 顧客データ抽出() '
Sheets("Sheet1").Select Selection.AutoFilter Field:=6, Criteria1:="000000" Columns("A:Q").Select Selection.SpecialCells(xlCellTypeVisible).Select Selection.Copy Sheets("ALL").Select Range("A1").Select ActiveSheet.Paste
Sheets("Sheet2").Select Selection.AutoFilter Field:=6, Criteria1:="000000" Columns("A:Q").Select Selection.SpecialCells(xlCellTypeVisible).Select Selection.Copy Sheets("ALL").Select Range("A" & Range("A1").End(xlDown).Row + 1).Select ActiveSheet.Paste
Sheets("Sheet3").Select Selection.AutoFilter Field:=6, Criteria1:="000000" Columns("A:Q").Select Selection.SpecialCells(xlCellTypeVisible).Select Selection.Copy Sheets("ALL").Select Range("A" & Range("A1").End(xlDown).Row + 1).Select ActiveSheet.Paste
Sheets("Sheet4").Select Selection.AutoFilter Field:=6, Criteria1:="000000" Columns("A:Q").Select Selection.SpecialCells(xlCellTypeVisible).Select Selection.Copy Sheets("ALL").Select Range("A" & Range("A1").End(xlDown).Row + 1).Select ActiveSheet.Paste ←ココが黄色反転する
Sheets("Sheet5").Select Selection.AutoFilter Field:=6, Criteria1:="000000" Columns("A:Q").Select Selection.SpecialCells(xlCellTypeVisible).Select Selection.Copy Sheets("ALL").Select Range("A" & Range("A1").End(xlDown).Row + 1).Select ActiveSheet.Paste
シート4にあるデータはどこもセルが結合されてなく、 データの表示形式は全て統一されています。 何が原因なのかさっぱりです。 教えてくださいー><
OS WIN XP EXCEL 2000
単純に考えると、シートの最大行よりも下に貼り付けようとしているだけだと思いますが。。。(ROUGE)
ROUGE様 最大行…っていうと、 Range("A" & Range("A1").End(xlDown).Row + 1).Select この行で指定しているという事なんでしょうか? このコード以外は全部自動記録で作ったので何がいけなかったのかさっぱり;
シート3まではちゃんと動いて貼り付けてくれてるんですが。。。 (ASK)
コピーした領域の大きさよりも、貼り付け先の領域の大きさが不足しているためのエラーだと推測してます。 ↓は明らかにダメだと分かるコードですが、同様のエラーが出ませんか?(ROUGE) '---- Sub test() Range("A1:A2").Copy Cells(Rows.Count, 1) End Sub
ROUGE様 同じエラーがでました;; 領域不足ということは、シート1から5までがA〜Q列を選択していることが原因なんでしょうか??
本来ならソートした部分のみ選択して貼り付けたいのですが、 力量不足ゆえやり方がさっぱりで。。。 (ASK)
アクティブセル領域の選択(CurrentRegionプロパティ) 終端のセルを選択する (Endプロパティ) 等を調べてみてください。
これを試してみてください。(ROUGE) '---- Sub test() Range("A1", Range("A1").SpecialCells(11)).Resize(, 17).SpecialCells(12).Select End Sub
ROUGE様 返事が遅れてスミマセン;(定時退社大好きなもので;;) 教えていただいたコードを試したところ、 理想的な選択範囲になりました!!
Resize(, 17)はA1から17列目まで指定かなぁ・・・というのは解ったのですが、 他の11とか12は・・・何を意味するのでしょうか? 今後のために教えていただけると嬉しいのですが。。。(ASK)
11 --> xlCellTypeLastCell 12 --> xlCellTypeVisible ということですb (ROUGE)
ROUGE様 なるほど!! そういう意味だったんですね! 教えていただきありがとうございました! コレで停滞していた業務がこなせます(>▽<)b ありがとうございました!
又何かあったときには宜しくお願いします。。。(ASK)
Sheetが変わるだけで同様の処理をしているようなので、For Each Nextでループさせることもできますね。 (ROUGE) '---- Sub 顧客データ抽出() Dim x For Each x In Array("Sheet1", "Sheet2", "Sheet3", "Sheet4", "Sheet5") With Sheets(x) .AutoFilterMode = False With .Range("A1", .Range("A1").SpecialCells(11)) .AutoFilter 6, "000000" .Resize(, 17).SpecialCells(12).Copy Sheets("ALL").Range(IIf(Sheets("ALL") _ .Range("A1").Value = "", "A1", Sheets("ALL").Range("A" & Rows.Count) _ .End(xlUp).Offset(1).Address)) End With End With Next Application.CutCopyMode = False End Sub
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.