Excel 2010 - 宏复制单元格范围而不是整行

时间:2015-07-08 10:47:23

标签: excel vba excel-vba

我尝试使用来自类似威胁的反馈 - 但我似乎无法在我的代码中实现任何这些威胁。 我很抱歉,因为我是宏的新手!

我有一个带有数据透视表的电子表格, 如果我想要复制A2:J2,如果K2 =“创建”。 我的宏工作但正在复制整行,有人可以帮助我吗?

Sub Create()
Dim RngColF As Range
Dim i As Range
Dim Dest As Range

Sheets("Data").Select
Set RngColF = Range("K1", Range("K" & Rows.Count).End(xlUp))

With Sheets("Open quotes")
    Set Dest = .Range("A" & Rows.Count).End(xlUp).Offset(1, 0)
End With

For Each i In RngColF
    If i.Value = "Create" Then
        i.EntireRow.Copy Dest
        Set Dest = Dest.Offset(1)
        Sheets("Open quotes").Select
    End If
Next i
End Sub

1 个答案:

答案 0 :(得分:0)

尝试

Sub Create()
Dim RngColF As Range
Dim i As Range
Dim Dest As Range

Sheets("Data").Select
Set RngColF = Range("K1", Range("K" & Rows.Count).End(xlUp))

With Sheets("Open quotes")
    Set Dest = .Range("A" & Rows.Count).End(xlUp).Offset(1, 0)
End With

For Each i In RngColF
    If i.Value = "Create" Then
        range(cells(i.row,1).address,cells(i.row,10).address).copy Dest
        Set Dest = Dest.Offset(1,0)
        Sheets("Open quotes").Select
    End If
Next i
End Sub

我不确定您要复制的数据位置。如果它在数据表中,那么当您选择"打开报价时,您将遇到问题"因此第二次围绕它的运行将从"打开引号"复制。可能想解决这个问题。

编辑:为了完整表格("打开引号")。选择应该(并且相信OP已经)移动到代码的末尾