[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『実行時エラー‘1004’ が出力』(なるほどなるほど)
以下のマクロを実行すると”実行時エラー‘1004’” が出力される時とされない時があります。何が良くないのでしょうか?
VBA初心者で見よう見まねで作成したのですが、原因が分からず教えて頂きたいです。宜しくお願い致します。
Sub TBZmarge()
Dim sWS As Worksheet Dim dWS As Worksheet
Set dWS = Worksheets("MargeSheet")
dWS.UsedRange.Offset(1, 0).Clear
For Each sWS In Worksheets If sWS.Name <> dWS.Name Then With sWS.UsedRange
If .Rows.Count > 1 Then .Offset(3, 0).Resize(.Rows.Count - 3).Copy _ Destination:=dWS.Cells(Rows.Count, 1). _ End(xlUp).Offset(1, 0) End If
End With End If Next sWS
dWS.UsedRange.Sort Key1:=Range("A1"), Header:=xlYes End Sub
< 使用 Excel:Office365、使用 OS:Windows10 >
ちなみにどこの行でエラーが発生してますか? エラーが発生したときに、デバックのボタンを押すと、 黄色になっている行があると思うので、どこが黄色くなっているか教えてくださ。 あと、詳細なエラーメッセージがあれば、それもお願いします。
以下、当方には質問者の方のシートの内容は見えませんので、まったくの想像になりますが、
.Offset(3, 0).Resize(.Rows.Count - 3).Copy のところで、 sWS.UsedRange.Rows.Count が 3行 以下だとエラーになりますので、確かめてください。 (´・ω・`) 2021/12/13(月) 15:16
エラーは出る時と出ない時が合って、再現中です。
If .Rows.Count > 1 Then .Offset(3, 0).Resize(.Rows.Count - 3).Copy _ Destination:=dWS.Cells(Rows.Count, 1). _ End(xlUp).Offset(1, 0) End If (なるほどなるほど) 2021/12/13(月) 15:18
>Destination:=dWS.Cells(Rows.Count, 1). _ .Ros.Count かな
(tkit) 2021/12/14(火) 08:04
.Rows.Countが3以下のとき、.Rows.Count - 3の計算結果が1未満となり Resize(0)やResize(-1)という処理ができずエラーになっているのだと思います。
(きまぐれおじさん) 2021/12/14(火) 08:21
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.