VBA粘贴范围

时间:2013-02-17 14:01:40

标签: excel-vba excel-2003 vba excel

我想知道是否有人可以帮助我:

我正在使用下面的代码(我已经得到了一些帮助),如果给定范围的单元格匹配一个特定的公式结果,则将数据行从一个工作表复制到另一个工作表。

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”开始。

我只是想知道某人是否能够看到这个并让我知道我哪里出错了。

非常感谢和亲切的问候

1 个答案:

答案 0 :(得分:0)

第一次通过循环时NextRow变量设置为A2,这意味着唯一的数据在A1中(或者A1中也没有)。要强制它在A5中启动,您可以将行更改为:

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

这意味着您在第2行(或第1行)到第4行中都有空白单元格。