Excelにてシート1のデータをシート2の集計表に反映させるには?Part2
昨日、下記のようなシート1の入力用の表で
X列のX1の月を変更するごとに
月毎にしたシート2の集計表のX1で変更した月列へ
コピーする方法を教えて頂き、
無事完成させることが出来ました。
しかし、新たな問題が発生して困っています。
前回も記載しましたが、シート1はこうです。
A ・・ X Y ・ ・ ・
1 4月
2 大阪支店 220万
・
8 奈良支店 150万
・
14 京都支店 180万
・
20 神戸支店 200万
・
26 滋賀支店 110万
・
32 岐阜支店 140万
・
38 計 1000万
・
・
そして、シートコピーする為のプログラムはこうです。
Private Sub CommandButton1_Click()
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim r1 As Range, r2 As Range
Set ws1 = Worksheets("Sheet1")
Set ws2 = Worksheets("Sheet2")
With ws1
Set r1 = .Range(.[X2], .Cells(Rows.Count, "X").End(xlUp))
End With
Set r2 = ws2.Rows(1).Find(What:=ws1.Range("X1").Value, LookIn:=xlValues, _
LookAt:=xlWhole)
If r2 Is Nothing Then
MsgBox "見つかりませんので" & vbLf & "終わります。"
Exit Sub
End If
r2.Offset(1).Resize(r1.Rows.Count).Value = r1.Value
End Sub
お礼をした時点では、出来ませんでした。と記載したのですが
それからさらに何度も取り組んだ結果、無事完成する事が出来ました。
(昨日ご回答頂いた方、大変ありがとうございました。
この場をお借りしてお礼申し上げます。)
しかし、ここからが問題なのですが、
最後のX列にもう1列追加し、2行を一緒にコピーしたいのです。
X列の3行目に18日、Y列の3行目に20日
と勤務日数を追記したいのです。
月、金額部分はX列とY列を行ごとにセル結合しているのですが、
上記の"X"というプログラムでも
X列に記載した、18日はチャントコピーされます。
しかし、結合していないY列の20日という日付はコピーされません。
"X"の部分を"X:Y"としてみたり、
自分なりに色々やってみましたが、出来ませんでした。
どうやれば2列のコピーが可能なのでしょうか?
前回同様、シート1,シート2共に行,列は同じ列間、同じ行間です。
説明不十分で申し訳ないのですが、もしお手数でなければ、
前回の記載文を見ていただけると幸いです。
タイトルは今回と同様です。(勿論Prat2はつけてません)
何卒宜しくお願い致します。
回答(2件)
- 最新から表示
- |
- 回答順に表示
- |
- ベストアンサーのみ表示
No.2ベストアンサー20pt
>結合していてもコピー出来る方法は無いでしょうか?
まず、
r2.Offset(1).Resize(r1.Rows.Count,2).Value = r1.Value
↑
この2を追加しないと、結合セルとX列のみしか値は代入されない。
Y列の値は空白になります。
>シート2の1行目は、4月(空き)5月(空き)・・・となってるのでしょうか?(2列1組)
ここの状態によるのかも、知れないですね。
シート1と同じかどうかですね。
こちらでは、4月・5月が2列に結合されていても(X1:Y1)
別々でも(X1)値はシート2にきちんと入りました。
この回答へのお礼
了解しました^^
では、また私の早とちりというか、焦ってどこかの入力が
間違えているのでしょうね;;
ではでは、ゆっくり試してみます。
昨日に引き続き、本当にどうもありがとうございました。
また、何かありましたら宜しくお願い致します。
シート2の1行目は、4月(空き)5月(空き)・・・となってるのでしょうか?(2列1組)
であれば、
>Set r1 = .Range(.[X2], .Cells(Rows.Count, "X").End(xlUp))
Set r1 = .Range(.[X2], .Cells(Rows.Count, "Y").End(xlUp))
と
>r2.Offset(1).Resize(r1.Rows.Count).Value = r1.Value
r2.Offset(1).Resize(r1.Rows.Count,2).Value = r1.Value
では、どうでしょうか?
この回答へのお礼
昨日はありがとうございました。
あれから、さらに何度かやってみて分かったのですが、
月の部分を形式表示のユーザー定義で『 ##"月" 』と
入れていたのがまずかったようで、
普通に"4月"とか"5月"と入力すれば出来ました。
あと、今回なのですが、お答えの式にやり直したところ、
3行目の2列に区切った勤務日数を入れたセルまではコピーされるのですが、
その下が空白になってしまいます。
たぶん2列を結合しているからだと思います。
だからX列に入力された金額を読み取らず、
その後ろのY列の空白を返しているのだと思います。
3行目以降で、結合していてもコピー出来る方法は無いでしょうか?
- 最新から表示
- |
- 回答順に表示
- |
- ベストアンサーのみ表示











