
マクロ初心者です。
下記のマクロを組みたいのですが、
「Rangeメソッドは失敗しました’Globalオブジェクト」とエラーが出てしまいます。
エラーがでる理由、またその修正方法についてご教示いただけませんでしょうか。。。
実現したい動きは以下で
ファイル#1の指定sheetのF5→AR42までの値をコピー
ファイル#3の同範囲に貼り付け
ファイル#2の指定sheetのF5→AR42までの値をコピー
ファイル#3の同範囲に加算で貼り付け
→上記の動きを38行分繰り返す
で、エラーが出てしまったマクロは以下です。。
Sub マクロ3()
'
' マクロ3 Macro
'
Dim i As Integer
For i = 0 To 37
Range(Cells(6, 5 + i)).Select
Windows("#1.xlsm").Activate
Worksheets("指定のシート名").Select
ActiveSheet.Range(Cells(6, 5 + i), Cells(29, 5 + i)).Select
Application.CutCopyMode = False
Selection.Copy
Windows("#2.xlsm").Activate
ActiveSheet.Paste
Windows("#3.xlsm").Activate
Worksheets("指定のシート名").Select
ActiveSheet.Range(Cells(6, 5 + i), Cells(29, 5 + i)).Select
Application.CutCopyMode = False
Selection.Copy
Windows("#1.xlsm").Activate
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlAdd, SkipBlanks:= _
False, Transpose:=False
Next i
End Sub
No.2ベストアンサー
- 回答日時:
こんにちは
ご質問に対する直接の回答は、すでにNo1様がなさっていますので、回答ではありません。
ざっと見ても、質問文とご提示のコードがまったく合致しているようには見えません。
>ファイル#1の指定sheetのF5→AR42までの値をコピー
これに対してコードの方は
>For i = 0 To 37
>Range(Cells(6, 5 + i), Cells(29, 5 + i)).Select
のようになっているので、結局のところ
E6:AP29( =Range(Cells(6, 5), Cells(29, 42)).Address(0, 0) )の範囲に対して処理を行おうとしています。
>ファイル#1の値をコピー
>ファイル#3に貼り付け
>ファイル#2の値をコピー
>ファイル#3に加算で貼り付け
に対しては、それぞれ
ファイル#1の値をコピー
ファイル#2に貼り付け
ファイル#3の値をコピー
ファイル#1に加算で貼り付け
と異なっている上に、多くの場合貼り付け先のセルを指定していないので、どこに張り付くかは成り行きとなっているようにみうけられます。。
おまけに
>→上記の動きを38行分繰り返す
範囲を「F5→AR42」としていて「38行分繰り返す」の意味がわかりません。
確かにセル範囲の「F5→AR42」は38魚分を含んでいますが、セル範囲を対象に処理を行うなら、「繰り返す」必要は感じられないですね。
というわけで、サッパリわからないけれど、超エスパー的な山勘でこんなことかもしれないと・・・(当たるも八卦)
Sub Sample()
Dim ws1, ws2, ws3
Const target = "F5:AR42"
Set ws1 = Workbook("#1.xlsm").Worksheets("指定のシート名")
Set ws2 = Workbook("#2.xlsm").Worksheets("指定のシート名")
Set ws3 = Workbook("#3.xlsm").Worksheets("指定のシート名")
ws1.Range(target).Copy Destination:=ws3.Range(target)
ws2.Range(target).Copy
ws3.Range(target).PasteSpecial Paste:=xlPasteAll, Operation:=xlAdd
End Sub
No.3
- 回答日時:
No2です。
投稿してから気づきましたがタイポがありました。(すみません)
すぐにわかるとは思いますけれど、一応、訂正しておきます
誤:Workbook()
正:Workbooks()
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
Rangeメソッドは失敗しました。globalオブジェクトについて
Excel(エクセル)
-
VBA 実行時エラー1004 rangeメソッドは失敗しました。globalオブジェクトのエラー
Excel(エクセル)
-
Worksheets メソッドは失敗しました。のエラー処理のやり方
Visual Basic(VBA)
-
-
4
マクロの「1列おきに貼り付け処理を行う方法」を知りたいです。
Excel(エクセル)
-
5
worksheetFunctionクラスのVlookupプロパティを取得できません エラーへの対応
Visual Basic(VBA)
-
6
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
7
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
-
8
'Range'メソッドは失敗しました
Excel(エクセル)
-
9
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
10
excelのマクロで該当処理できなければ飛ばして進むにはどうすればよいのでしょうか
Visual Basic(VBA)
-
11
Excel VBAでのWorksheet_Changeが動作しない原因
Excel(エクセル)
-
12
エクセルVBAが途中で止まります
Visual Basic(VBA)
-
13
もしセルが#N/A"なら~をする・・・には?"
Excel(エクセル)
-
14
エクセルVBAでオートフィルター最上行を取得するには
Excel(エクセル)
-
15
初歩的な事だと思います。 Sub または Function が定義されていません。
Visual Basic(VBA)
-
16
VBA マクロ実行時エラー’1004RangeクラスのPasteSpecialメソッドが失敗
Access(アクセス)
-
17
VBAでセル入力の数式に変数を用いたい
Excel(エクセル)
-
18
vbaで指定したセルより下の行を指定する方法について vbaの質問です。 例えば、「C6」セルより下
Excel(エクセル)
-
19
実行時エラー 438になった時の対処法を教えて下さい。
Visual Basic(VBA)
-
20
VBA public変数はどのようなことをしたら解放されますか?
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アトピー性皮膚炎
-
コロナになるのが死ぬほど怖い...
-
頭痛に関する質問です。現在高...
-
24歳、女性です。性欲が強すぎ...
-
未成年の従姉妹が自分の真似絵...
-
肝臓がんになりたいです。肝機...
-
◎敢えてノンジャンルカテゴリー...
-
何故 削除され続けるか、
-
首吊りどこ締めるの
-
検便についてです。 便は取れた...
-
血液検査の結果が悪くefgrの値...
-
彼女のことが好きすぎて彼女の...
-
エクセルのラベルの値(文字列...
-
風俗店へ行く前のご飯
-
EXCELで条件付き書式で空白セル...
-
2つの数値のうち、数値が小さい...
-
♔*.◦♔*.◦♔*.◦ プチごめんなさい...
-
検便を取ったのですが、棒から...
-
リンク先のファイルを開かなく...
-
汚い話ですみません。 検便って...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
首吊りどこ締めるの
-
検便についてです。 便は取れた...
-
血小板増加について
-
彼女のことが好きすぎて彼女の...
-
Excel 数値の前の「 ' 」を一括...
-
病院側から早く来てくださいと...
-
VLOOKUP関数を使用時、検索する...
-
腕を見たら黄色くなってる部分...
-
値が入っているときだけ計算結...
-
リンク先のファイルを開かなく...
-
2つの数値のうち、数値が小さい...
-
風俗店へ行く前のご飯
-
小数点以下を繰り上げたものを...
-
一番多く表示のある値(文字列...
-
MIN関数で空白セルを無視したい...
-
勃起する時って痛いんですか? ...
-
エクセルで空白セルを含む列の...
-
増減表のプラスマイナスの符号...
-
【Excelで「正弦波」のグラフを...
-
エクセルで数式の答えを数値と...
おすすめ情報