こういうことかな?
ExcelVBA
1Sub test001()
2 Dim ws As Worksheet
3 Dim b As Long
4
5 Set ws = Worksheets("Sheet1")
6
7 ws.Range("B15:B16").Copy
8 Do
9 Worksheets("マクロ用書き出し").Range("A9:A10").Offset(b).PasteSpecial Paste:=xlPasteValues
10 b = b + 2
11 Loop Until ws.Range("F3").Value + b > ws.Range("D3")
12 Application.CutCopyMode = False
13End Sub
ループしなくても貼り付け範囲を拡張したらいいかも?
ExcelVBA
1Sub test002()
2 Dim i As Long
3
4 With Worksheets("Sheet1")
5 i = .Range("D3").Value - .Range("F3").Value
6 .Range("B15:B16").Copy Worksheets("マクロ用書き出し").Range("A9:A10").Resize(i * 2)
7 End With
8End Sub
※こんな感じかなぁというイメージです。
動作確認は行ってません。細かい計算など修正願います。
画像見ました。
僕ならこんな感じで書きます。(いろんな書き方があります)
ExcelVBA
1Sub test003()
2 Dim rngFrom As Range
3 Dim rngTo As Range
4 Dim c As Range
5 Dim ixMin As Long
6 Dim ixMax As Long
7 Dim ix As Long
8
9 With Worksheets("Sheet1").Range("C5").CurrentRegion
10 Set rngFrom = Intersect(.Cells, .Offset(1), .Columns(2))
11 ixMin = .Worksheet.Range("F3").Value
12 ixMax = .Worksheet.Range("D3").Value
13 End With
14 Set rngFrom = Application.Range(rngFrom(ixMin), rngFrom(ixMax))
15 Set rngTo = Worksheets("マクロ用書き出し").Range("A9")
16
17 ix = 1
18 For Each c In rngFrom
19 c.Copy rngTo(ix, 1)
20 ix = ix + 2
21 Next
22End Sub
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/11/12 11:50 編集