[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『マクロについて教えていただきたい』(初心者)
いつも拝見させていただいています。
シート1のA列に1から10の値が入っているとして、
最終行を取得後(ここまでできました)
シート2のC1へシート1のA1の値、シート2のE1へシート1のA2の値、
シート2のC10へシート1のA3の値、シート2のE10へシート1のA4の値と
いった動作を求めているのですが・・・
FOR〜NEXT分ではできないのでしょうか。STEP等を使用していましたが、
どうしてもできなくて、お知恵をいただきたいです。
< 使用 Excel:Excel2010、使用 OS:Windows7 >
C1、C10 の後はC19、C28と8行おきにセットするのですか?
Sub test()
Dim sh1 As Worksheet Dim sh2 As Worksheet Dim e As Long Dim i As Long Dim j As Long Set sh1 = Worksheets("Sheet1") Set sh2 = Worksheets("Sheet2") e = sh1.Range("A" & Rows.Count).End(xlUp).Row j = 0 For i = 1 To e Step 2 If i Mod 2 Then sh2.Cells(j * 9 + 1, 3) = sh1.Cells(i, 1) sh2.Cells(j * 9 + 1, 5) = sh1.Cells(i + 1, 1) j = j + 1 End If Next End Sub (ウッシ) 2017/01/11(水) 11:08
お忙しいところ、ご教授ありがとうございます。
動作は思っていた通りでしたが、頂いたコードを見ながら勉強します。まずMODを理解します。
ありがとうございました。
(初心者) 2017/01/11(水) 11:57
ループが1行目(奇数)から始まっているので本当は、MODの判定はいらないんです。
Sub test1()
Dim sh1 As Worksheet Dim sh2 As Worksheet Dim e As Long Dim i As Long Dim j As Long Set sh1 = Worksheets("Sheet1") Set sh2 = Worksheets("Sheet2") e = sh1.Range("A" & Rows.Count).End(xlUp).Row j = 0 For i = 1 To e Step 2 sh2.Cells(j * 9 + 1, 3) = sh1.Cells(i, 1) sh2.Cells(j * 9 + 1, 5) = sh1.Cells(i + 1, 1) j = j + 1 Next End Sub
(ウッシ) 2017/01/11(水) 12:07
解決済かもしれませんが、、、
読む方を主体に見なくても、
書き込む方のセルに着目してみるのもありですよ^^
Sub test3()
Dim ixRow As Long Dim ixCol As Long Dim ix As Long
For ixRow = 1 To 37 Step 9 For ixCol = 3 To 5 Step 2 ix = ix + 1 Worksheets(2).Cells(ixRow, ixCol).Value = Worksheets(1).Cells(ix, 1).Value Next Next End Sub
(まっつわん) 2017/01/11(水) 12:09
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.