[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『1行飛ばしで貼り付け』(管さん)
A列の値をB列に一行飛ばしでマクロで貼り付けたいのですが,ご指導お願いします。
A B 1 a a 2 b 3 c b 4 d 5 e c 6 f 7 g d
B1 : =IF(MOD(ROW(),2)=0,"",INDEX(A:A,(ROW()+1)/2)) これを、下に、ずぅっとひっぱる。
(ぶらっと)
B1:=INDEX(A:A,(ROW(B1)+1)/2)&"" B2:(ブランク) 入力しない B1:B2を指定 下へフィルコピー (NB)
マクロで貼り付けたいのですが,ご指導お願いします。
失礼。見落としていた。 スタンダードなループ処理。
Sub Sample() Dim c As Range Dim i As Long, z As Long
Columns("B").ClearContents z = Range("A" & Rows.Count).End(xlUp).Row Set c = Range("B1") For i = 1 To z c.Value = Cells(i, "A").Value Set c = c.Offset(2) Next
End Sub
追記)かわりばえしないけど、もう1つ。
Sub Sample2() Dim i As Long, z As Long Dim v() As String
Columns("B").ClearContents z = Range("A" & Rows.Count).End(xlUp).Row ReDim v(1 To z * 2, 1 To 1) For i = 1 To z v((i - 1) * 2 + 1, 1) = Cells(i, "A").Value Next
Range("B1").Resize(z * 2).Value = v
End Sub
もう1つおまけ。行挿入は好きじゃないんだけど。
Sub Sample3() Dim i As Long, z As Long Dim v() As String
Columns("B").ClearContents z = Range("A" & Rows.Count).End(xlUp).Row Range("B1").Resize(z).Value = Range("A1").Resize(z).Value ReDim v(2 To z) For i = 2 To z v(i) = "B" & i Next
Range(Join(v, ",")).Insert Shift:=xlDown
End Sub
これで打ち止めにするけど
Sub Sample4() Dim i As Long, z As Long Dim v() As String
Columns("B").ClearContents z = Range("A" & Rows.Count).End(xlUp).Row Range("B1").Resize(z * 2).Formula = "=IF(MOD(ROW(),2)=0,"""",INDEX(A:A,(ROW()+1)/2))"
End Sub
(ぶらっと)
関数から、たくさんのマクロまで有難うございました。 勉強させていただきます。』 (管さん)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.