[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『RangeクラスのSelectメソッド?』(キャン)
マクロの実行中にこんなエラーが・・・ Worksheets("〜").Range("H5:z23").Select RangeとSelectはセットで使用できないのでしょうか??
普通に、出来ましたよ〜 >Worksheets("〜") シート名は、合ってますか?
(キリキ)(〃⌒o⌒)b
対象シートがアクティブになっていないと、セルを選択することは出来ません。
参考 Application.Goto Reference:=Worksheets("Sheet3").Range("A154") (INA)
これならできましたが Worksheets("〜").Select Selection.Range("H5:Z23").Select (キャン)
衝突。 おそらく、アクティブでないシートのセルを選択しようとしているのでは。 Rangeオブジェクトを選択するためにはその親のSheetオブジェクトが アクティブである必要があります。 Worksheets("〜").Select Range("H5:z23").Select とすれば「失敗しました」エラーは出ません。 ちなみに、その後の操作でSelectする必要性がなければ、 たとえばCopyメソッドであれば、Selectせずに Worksheets("〜").Select Range("H5:z23").Select Selection.Copy ↓ Worksheets("〜").Range("H5:z23").Copy のように書くことはできます。(みやほりん)
Worksheets("A").Select Range("H5:J44").Select Worksheets("B").Select Range("H5:J44").Select Worksheets("C").Select Range("H5:J44").Select としたときどの3つのシートもH5:J44が選択状態になっていますよね? この後マクロではなく手作業でABCのシートの選択させた箇所のセル結合解除をします。 この状態で Sheets("D").Range("H1:J40").Copy Sheets("A").Paste'←セレクト選択しなくても大丈夫ですよね? Sheets("B").Paste' Sheets("C").Paste' こうすればいいのでしょうか?
>どの3つのシートもH5:J44が選択状態になっていますよね? そのコードですと 最終的にWorksheets("C")の Range("H5:J44")が選択されているだけです。 また、複数選択シートに対する操作はマクロで再現されないものが多いので、 複数シートを選択して操作する記録マクロでもうまくいかないときが。 該当範囲の結合セル解除なら、下記のように書けます。 Worksheets("A").Range("H5:J44").MergeCells = False Worksheets("B").Range("H5:J44").MergeCells = False Worksheets("C").Range("H5:J44").MergeCells = False 【参考】 With Sheets("D").Range("H1:J40") .Copy Destination:=Sheets("A").Range("H5") .Copy Destination:=Sheets("B").Range("H5") .Copy Destination:=Sheets("C").Range("H5") End With (みやほりん)
マクロの自動記録だと遠回りになるのに With Sheets("D").Range("H1:J40") .Copy Destination:=Sheets("A").Range("H5") .Copy Destination:=Sheets("B").Range("H5") .Copy Destination:=Sheets("C").Range("H5") End With こんな簡素な式になるんですね?すごいです。 コピー先は左上だけを宣告すればいいんでしょうか? それとも全体を指定したほうがいいのでしょうか??
「どちらでもできる」ので「どちらがいい」と言うことはないと思います。 どんな形のセル範囲をどのような範囲へ貼り付けるかによるでしょう。 (みやほりん)
なるほど・・・ 分かりました。ありがとうございます
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.