0

誰かが私を助けてくれるのではないかと思います:

特定のセル範囲が特定の数式の結果と一致する場合、あるシートから別のシートにデータの行をコピーするために、以下のコード (私はいくつかの助けを借りました) を使用しています。

Sub test()
    Set Sht = Sheets("Sheet 1")
    rw = 5
    Do While Len(Sht.Cells(rw, "A").Value) > 0
        If Sht.Cells(rw, "B").Value > 0 Then
            ResourcesAllUsed = True
            For colm = 3 To 25 Step 2
                If (Sht.Cells(rw, colm + 1).Value < (Sht.Cells(rw, colm).Value * 0.85)) Or (Sht.Cells(rw, colm + 1 + 25).Value < (Sht.Cells(rw, colm + 25).Value * 0.85)) Then
                    ResourcesAllUsed = False
                    Exit For
                End If
            Next colm
            If Not ResourcesAllUsed Then
                With Sheets("Sheet 2")
                    NextRw = .Cells(.Rows.Count, "A").End(xlUp).Row + 1
                    .Cells(NextRw, "A").Resize(, 26).Value = Sht.Cells(rw, "A").Resize(, 26).Value
                    .Cells(NextRw, "AD").Value = Sht.Cells(rw, "AD").Value
                End With
            End If
        End If
        rw = rw + 1
    Loop
    End Sub

コピーは正常に機能しますが、貼り付けを開始する行に少し問題があります。

「A5」から貼り付けたいのですが、なぜか「A2」から貼り付けられてしまいます。

誰かがこれを見て、どこが間違っているのか教えてください。

多くの感謝と親切な敬意

4

1 に答える 1

0

変数は、最初のループで A2 に設定されます。NextRowこれは、A1 にデータのみがある (または A1 にも何もない) ことを意味します。強制的に A5 で開始するには、行を次のように変更できます。

NextRw = Application.WorksheetFunction.Max(.Cells(.Rows.Count, "A").End(xlUp).Row + 1,5)

これは、2 行目 (または 1 行目) から 4 行目に空白のセルがあることを意味します。

于 2013-02-17T15:36:19.077 に答える