【问题标题】:VBA Paste RangeVBA 粘贴范围
【发布时间】:2013-02-17 23:36:19
【问题描述】:

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

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

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

我只是想知道是否有人可以看看这个并让我知道我哪里出错了。

非常感谢和亲切的问候

【问题讨论】:

    标签: excel excel-2003 vba


    【解决方案1】:

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

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

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

    【讨论】:

    • 嗨@Doug Clancy,非常感谢您抽出宝贵时间回复我的帖子。您的解决方案效果很好。所有最好的和亲切的问候
    猜你喜欢
    • 2013-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-27
    • 2014-04-08
    • 1970-01-01
    • 2014-11-21
    相关资源
    最近更新 更多