[[20160205145616]] 『範囲の決まったコピペについて』(らむ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『範囲の決まったコピペについて』(らむ)

いつもお世話になってます。

VBAでのコピー・ペースト(値のみ)について質問させてください。

シート1のA2〜AE2まで日付(1か月分)が入ってるのですが、それを
シート2のB2に行列を入れ替えて貼り付けたいと思ってます。
ただその際、シート2のA列に名前がある行まで、
B2からB列に繰り返し貼り付けたいと思ってます。

そこで下記のコードを書いてみたのですが、インデックスが有効範囲にありません
となります。
超初心者なので、見よう見まねで作成したのですが、、、

Sub 日付挿入()

Dim i As Long

Dim MaxRow As Long

MaxRow = Sheets("Sheet2").Cells(Rows.Count, 1).End(xlUp).Row

For i = 2 To MaxRow

        Sheets("Sheet1").Range("A2:AE2").Select
        Selection.Copy
        Cells(i, 2).Select
        ActiveSheet.Paste
    Next i

End Sub

恐れ入りますが、お知恵を貸してください。

< 使用 Excel:Excel2013、使用 OS:Windows7 >


 >シート2のA列に名前がある行まで
 2行目からMaxRowまで、途中A列に名前がなくてもB列に転記します
  らむさんのコードのFor〜Nextを使用したコードの1例です
 コピー元を一気に範囲指定し、行列入れ替えでペーストしてもいいと思います
 もしA列に名前がない行はB列に転記しないのであれば、これではありません

 Sub 日付挿入2()
     Dim i As Long
     Dim MaxRow As Long

     With Sheets("Sheet2")
         MaxRow = .Cells(.Rows.Count, 1).End(xlUp).Row

         For i = 2 To MaxRow
             .Range("B" & i).Value = Sheets("Sheet1").Cells(2, i - 1).Value
         Next i
     End With
 End Sub

(____) 2016/02/05(金) 16:13


(___)様

コピー元はシート1のA2〜AE2までで、それ以降の2行目(AF2以降)には別の値が入ってます。

なので、シート1のA2からAE2をコピーし、シート2のB2に
行列を入れ替えてa列に名前があるまでコピペを繰り返したいのです。

すみません、うまく説明できず、、、
(らむ) 2016/02/05(金) 21:01


 遅くなりました
 >A2〜AE2までで
 と強調されるいうことはもしかして、Sheet2のA列には32行以降にも名前があり、そこには転記しないということでしょうか?

 こちらの認識としては、
 【Sheet2】
    __A___    ____B_____
 1   名前        日付
 2  りんご    Sheet1のB2
 3  ごりら    Sheet1のC2
 4  らっぱ    Sheet1のD2
 5            Sheet1のE2
 6  るびー    Sheet1のF2
 :    :           :
 ?  わいん    Sheet1の?に対応する列の2行目

 ?はA列に名前がある最終行
 5行目のように、A列に空白があったとしても最終行までB列に転記という具合だったのですが……

(____) 2016/02/09(火) 12:03


(___)様
シート2のA列には32行目以降も名前あります。
A2から31行分同じ名前がならび、その後別の名前がまた31行つづいていきます。

シート1のA2からAE2には一ヶ月分の日付がはいっており、
それをシート2のA2から行列を変えて貼っていけば、
1人につき31行あるのは変わらないので、
シート2のA列の最終行まで貼れればぴったり合うかと思いまして。。。

拙い説明で申し訳ございません
(ちぃ) 2016/02/10(水) 07:04


 こんなことですか?

 Sub Sample()
    Sheets("Sheet1").Range("A2:AE2").Copy
    With Sheets("Sheet2")
        .Range("A2", .Range("A" & Rows.Count).End(xlUp)).Offset(, 1).PasteSpecial Paste:=xlValues, Transpose:=True
    End With
    Application.CutCopyMode = False
 End Sub

(β) 2016/02/10(水) 07:17


β様

まさにその通りです!!
ありがとうございました!!

(___)様、β様
お二人ともお忙しい中ありがとうございました

(ちぃ) 2016/02/10(水) 12:12


 なぜらむさんの質問をちぃさんが閉じているのでしょうかね。

 もし、同一人物であればなぜ別名を使っているのでしょうか?
(マルチーズ) 2016/02/10(水) 13:09

申し訳ございません。
携帯とパソコンでそれぞれ処理しており、最初に質問した時の名前と混同していました。
他意はありません。
(ちぃ) 2016/02/10(水) 13:25

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.