[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『表に他セルからの値をコピペしたい』(やま)
◎ 下記表(セルの枠のみ表示)に、他セルに有る表(元の表と枠組みは同じ)から データ(数字)を貼り付けた表です。 ◎ 現在、最初の表では成功していますが、2個目と3個目までの表が有ります。
11 21 31 41 12 22 32 42 13 23 33 43 14 34 44 → 空白セル=セルの結合あり(/を表示中) 15 35 45 65 66 165 215 → 解答欄 (白色文字にして、見えなくしている。) → ここには、上記解答との「◎ ×の判定書式あり
◎ この問題部分(B6:E10)を下段の表 B35:E39にコピペは「成功」です。
ただし、解答と判定セルの B11:E12セルは外してコピーして貼り付ければの話です。
Sub 問題の呼出し()
Range("B6:E10").Copy Destination:=Range("B35:E39")
End Sub
次の問題が発生中です。
◎ 同じような表があと2個有ります。それぞれ「問題」の下行には解答と判定セル が有りますので、一気にB6:E31を選択して、B35:E60 としますと、解答、判定をも取得 してしまいますので、問題の部分のみを選択して、下記コードでは
Range("B6:E10,B15:E19,B25:E29").Copy Destination:=Range ("B35:E39,B44:E48,B54:E58") としたら、エラーとなりました。
◎ 複数の表を選択するのが分かりません?
◎ なお、最終的には、C3セル=ここに回数を入力すると、各表(回数表示有り)の 回数を取得して「当該問題を呼び出して貼り付ける」作業にしたいのです。
◎ 今までは、Excelの数式で呼び出しで作業をしていましたが、6回分以上数式を入れ ると無理な状況です。そこでVBAは初心者で参考書片手の作業ですが、良い方法をご教 授ください。
< 使用 Excel:Excel2003、使用 OS:WindowsXP >
◎ 列指定と行指定でやってみた結果です。
Sub 問題の呼出し() Range("B:E").Copy Destination:=Range("B:E") Range("6:10").Copy Destination:=Range("35:39") Range("15:19").Copy Destination:=Range("44:48") Range("25:29").Copy Destination:=Range("54:58")
End Sub
◎ これで いけそうです!
◎なので「最終的にの方法」の件になりますが、「回数」指定セルに入力した回数の表を貼り付けるには? ◎ 呼び出された表 (3個 で1回分)です。C3セルの値が、別表から呼び出して表示したい回数です。 A35セルには、別表1回の「1」の表示が有ります。C3=A35 この状況で、1回(3個の表の値)を貼り付け たいのですが、よろしくお願いします。
(やま) 2014/09/20(土) 16:48
やっていることを理解できているでしょうか。
Range("B:E").Copy Destination:=Range("B:E") は自分自身にコピーをしているので、実質なにも変化していません。
Range("6:10").Copy Destination:=Range("35:39") は 6:10 行を 35:39 行に行ごとコピーしています。
ですので、これで問題なければよいですが、B:E列の範囲だけコピーしたいのであれば、 Range("B6:E10").Copy Destination:=Range("B35:E39") とする必要があります。
セルの指定方法をもう一度確認してみてください。 どうでも良い話ですが、他の引数を使用しなければ、Destination:= はなくとも 意味が分かりずらいことはないので、省略しても構いません。
ある値に応じて、コピー場所を変えたい場合、規則性があればセルを式で指定もできますが 規則性が無ければ、 Select Case で値ごとに処理を書くことになります。
A1 に応じてコピー範囲を変える例です。 Sub Sample() Select Case Range("A1").Value Case 1 : Range("B6:E10").Copy Range("B35:E39") Case 2 : Range("B15:E19").Copy Range("B35:E39") Case 3 : Range("B25:E29").Copy Range("B35:E39") End Select End Sub (Mook) 2014/09/20(土) 18:14
(Mook)さん 2014/09/20(土) 18:14
◎ 何時も早々の、ご教授ありがとうございます。
> Range("B:E").Copy Destination:=Range("B:E") は自分自身にコピーをしているので、実質なにも変化していません。
◎ 何をやってんでしょうね! 行コピーで、支障はありませんでしたが、シンプルな記述に変更しました。 コピー範囲の変更も理解できました。
これは、質問用に作成したパターンですので、実際に使用したいのを別途質問させて頂きますので その節は、よろしくお願いします。 (やま) 2014/09/21(日) 14:12
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.