0

行 10:12 をコピーして、D8 の値が 1 を超えるたびに下に貼り付けようとしています (つまり、D8 = 2 の場合は 1 回貼り付け、値が 3 の場合は 2 回貼り付けます)。私はこのコードをどこから始めればいいのかわからないので....

4

2 に答える 2

0

この式

=IF(A$8>=1,A10,"") 

行 8 の値に基づいて下にコピーできます。D8 の値だけに固執する場合は、式を次のように変更します。

=IF($D$8>=1,A10,"") 

数式は 3 行ごとに更新する必要があるため、セル A16 の数式は次のようになります。

=IF(A$8>=2,A13,"")

ここに画像の説明を入力

于 2013-03-28T12:32:25.157 に答える
0

あなたは私が推測するこのようなことをすることができます:

Sub LoopeyPasteyFantastico()
    Dim ValueOverOne As Long
    Dim i As Long
    Dim LastRow As Long

    ValueOverOne = Sheet1.Cells(8, 4).Value - 1

    For i = 1 To ValueOverOne
        Sheet1.Range("10:12").Select
        Selection.Copy
        LastRow = Sheet1.Range("A65536").End(xlUp).Row + 1
        Sheet1.Range(LastRow & ":" & LastRow).Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
    Next i
End Sub

または、より良い代替手段は次のとおりです(コピーと貼り付けを使用する必要はありません):

Sub LoopeyPasteyFantasticoAlternative()
    Dim ValueOverOne As Long
    Dim i As Long
    Dim LastRow As Long

    ValueOverOne = Sheet1.Cells(8, 4).Value - 1

    For i = 1 To ValueOverOne
        LastRow = Sheet1.Range("A65536").End(xlUp).Row + 1
        Sheet1.Range(LastRow & ":" & LastRow + 2).Value = Sheet1.Range("10:12").Value
    Next i
End Sub
于 2013-03-27T21:46:59.620 に答える