ここから本文です

Sheet1→Sheet2へ数値をコピーアンドペーストする(VBA)

ふわふわさん

2012/8/2916:44:22

Sheet1→Sheet2へ数値をコピーアンドペーストする(VBA)

エクセルのVBAについて

会社で使用している「Book1.xls」内のSheet1→Sheet2へ数値をコピーアンドペーストしたいのですが、
数が多いので(Book1.xlsが6個あり、6個とも施設名だけ違いますが同じコピペの作業が必要)、VBAのコードを使って自動化できないか考えています。

図を以下に用意いたしましたが、やり方としては
Sheet1の、施設Aの8月1日は「2」という数字が入っているので、その数値をそのままSheet2の施設A・8月1日のセルへコピーアンドペーストすればOKで、これを施設ABCDの分全部行うのですが

①この作業は、毎月行います。Sheet1の施設名は、施設Aの行がある月もあれば、無い(施設Aの行自体存在しない)月もあるというように、毎月内容が変動します。
それでも、毎月正確にデータをコピーアンドペーストするVBAのコードはあるのでしょうか?

②図をご覧いただくとわかりますが、Sheet1は上から施設A、B、C、Dと並んでいますが、Sheet2はC、A、B、Dと順番がバラバラです。それでも、VBAを使えば正しくコピーアンドペーストできるのでしょうか。。


質問の意味が不明でしたら出来るだけ補足いたしますので、
コードと、VBA初心者なので、使い方等も教えていただけると助かります(コードを書き込む場所ぐらいはわかるのですが。。すみません)

宜しくお願いいたします。

※質問に関係ない回答はご遠慮いただけたらと思います。

Sheet1,Sheet2,Book1.xls,コピーアンド,VBA,A1&quot,A2&quot

閲覧数:
1,916
回答数:
1
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

ora********さん

2012/8/2921:04:41

貼り付け先にある施設名の一覧を、一旦内部配列に格納します。
その後で、Sheet1の表をSheet2へ貼り付けます。
次に、最初に内部配列に格納した施設名を1行目から順に取り出して、Sheet2のA列から検索します。
ヒットしたセルの行を丸ごと、表の最終行へ移動。
これを、施設名の配列の数だけ繰り返します。
最後に、上部にできる不要な行を削除して終了。

Sub sample()

Dim i As Long
Dim St1 As Worksheet, St2 As Worksheet
Dim V As Variant
Dim FRange As Range

'コピー元のシート
Set St1 = Sheets("Sheet1")

'貼り付け先のシート
Set St2 = Sheets("Sheet2")

'貼り付け先の施設名を配列に格納
V = St2.Range("A2").CurrentRegion

'コピー元の表を貼り付け先シートへコピペ
St1.Range("A2").CurrentRegion.Copy St2.Range("A1")

With St2
For i = 1 To UBound(V)
'貼り付け先シートで、配列に格納した施設名の1行目から最終行までを、1件毎に検索
Set FRange = .Columns(1).Find(what:=V(i, 1), lookat:=xlWhole)
'ヒットしたセルの行を、最終行へ移動
.Rows(FRange.Row).Cut Destination:=.Rows(.Cells(Rows.Count, 1).End(xlUp).Row + 1)
Next
'不要な行を削除
.Range("2:" & .Range("A1").End(xlDown).Row - 1).Delete
End With


End Sub

質問した人からのコメント

2012/8/30 11:09:17

降参 本当に有難うございます!!マクロはこういったことも出来るのですね。。
大変参考になりました!
また機会がございましたら宜しくお願いいたします!!

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる