[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『横のデータを別シートの縦にはりつけたい』(ヨッシー)
シート1
A B C D E F G
1 国語
2 項項項項項
2 目目目目目
3 1氏名1 ○○○○○
4 2氏名2
5 3氏名3
6 4氏名4
個人のシート
A〜 AA4
1
2
2
4
5
6
7
8 D〜 AA4 1 2 3 4 5 6
9 国 項目 ○
10 項目 ○
11 項目 ○
12 項目 ○
13語 項目 ○
の形式のシートがあります。シート1の横データを、個人シートの縦に貼り付けたいです。
Dim学年WS As Worksheet
Dim氏名WS As Worksheet
Dimコピーセル As Range
Dim貼付けセル As Range
Dim k As Long,i As Long
Set 学年WS=Worksheets("2年") '学年シートの入力
For g=0 To 21 '児童数引く1
Set 氏名Ws=Worksheets(学年Ws.Cells(2,3+g).Value)
For =0 To 4 '項目引く1
Set コピーセル=学年WS.Cells(3+g,3+i)
Set 貼付けセル=氏名WS.Cells(9+i,39)
ここまで書いてみたのですが、これでいいのか、縦に置き換えるにはどうしたらいいのか、「CUTメソッド」がいいようなのですが、どう書いたらいいのかわかりません。よろしくお願いします。
< 使用 Excel:Office365、使用 OS:Windows10 >
こうでは、ありませんか?
(マナ) 2019/03/24(日) 09:15
(マナ) 2019/03/24(日) 09:20
>縦に置き換えるにはどうしたらいいのか
行列を入れ替えて貼り付けるという意味であれば、「コピー」したセル範囲を「PasteSpecial Transpose:=True」で良いと思いますが、実際はどうなんでしょうか
一足飛びにやろうとするとかえって難しくなりそうなので、ループ部分は置いておいて、1つだけ(1ループ目だけ)の処理を手作業で実行してみて、マクロの記録を取ってみてはどうでしょうか?
あと、多重ループにされる予定みたいですが、内側のループの変数が抜けてませんか?
また、変数「g」の宣言が無いようです
Sub 名も無きマクロ() Dim 学年WS As Worksheet, 氏名WS As Worksheet Dim コピーセル As Range, 貼付けセル As Range Dim k As Long, i As Long
Dim g As Long '★追記
Set 学年WS = Worksheets("2年") '学年シートの入力
For g = 0 To 21 '児童数引く1 Set 氏名WS = Worksheets(学年WS.Cells(2, 3 + g).Value)
For i = 0 To 4 '★「i」で良いのかわかりませんがとりあえず Set コピーセル = 学年WS.Cells(3 + g, 3 + i) Set 貼付けセル = 氏名WS.Cells(9 + i, 39) Next i
Next g
End Sub
(もこな2) 2019/03/24(日) 09:39
Dim 学年WS As Worksheet Dim 氏名WS As Worksheet Dim コピーセル As Range Dim 貼り付けセル As Range Dim k As Long, i As Long, g As Long
Set 学年WS = Worksheets("2年") '学年の入力
For g = 0 To 1 '後ろの数字は児童数引く1の数
Set 氏名WS = Worksheets(学年WS.Cells(3 + g, 2).Value) '児童の選択
For i = 0 To 4 '後ろの数字は評価項目番号引く1の数
Set コピーセル = 学年WS.Cells(3 + g, 3 + i) '変えない Set 貼り付けセル = 氏名WS.Cells(9 + i, 39) '行の先頭数字は変える 貼り付けセル.Formula = "=" & コピーセル.Address(external:=True)
Next i Next g
End Sub で動かしてみましたが、動きましたがデータが転記されません。
PasteSpecial Transpose:=True はどのように入れればいいのでしょうか。
(ヨッシー) 2019/03/24(日) 12:42
氏名WS.Cells(9, 39)に、転記されませんでしたか?
(マナ) 2019/03/24(日) 13:18
(マナ) 2019/03/24(日) 13:48
B3セルには、何が入力されていますか。
あと,C3セルには、何が入力されていますか。
(マナ) 2019/03/24(日) 13:52
(マナ) 2019/03/24(日) 14:02
>C3セルには、「A」が入力されています。
(マナ) 2019/03/24(日) 14:30
Sub 国語の転記2() '一覧表「国語」を転記する
Dim 学年WS As Worksheet Dim 氏名WS As Worksheet Dim コピーセル As Range Dim 貼り付けセル As Range Dim k As Long, i As Long, g As Long
Set 学年WS = Worksheets("2年") '学年の入力
For g = 0 To 4 '後ろの数字は児童数引く1の数
Set 氏名WS = Worksheets(学年WS.Cells(3 + g, 2).Value) '児童の選択
For i = 0 To 4 '後ろの数字は評価項目番号引く1の数
Set コピーセル = 学年WS.Cells(3 + g, 3 + i) '変えない Set 貼り付けセル = 氏名WS.Cells(9 + i, 34) '行の先頭数字は変える 貼り付けセル.Value = コピーセル.Value
Next i Next g
End Sub (ヨッシー) 2019/03/24(日) 18:37
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.