Excel VBA复制并粘贴整个范围与条件?

罗仪

感谢您阅读我的问题。

我有一个表[ws1(A4:Q500)]包含数据,而列Q之后有公式。因此,我无法复制整个行,而只能复制文本中的特定范围。

Q列是用于定义数据是否属于周期的公式,即16 / 11-30 / 11数据。标志如下:

0 <16/11

1 = 16/11-30/11

2> 30/11

这里的目标是将标记为“ 1”的ws1数据复制到[ws2(A2:P200)],然后删除标记为“ 1”和“ 2”的ws1数据

相信复制和删除的规则非常相似,我尝试先进行复制

Sub PlotGraph()
Dim i As Integer
Dim j As Integer
Dim lastrow As Integer
Dim ws1 As Worksheet: Set ws1 = ThisWorkbook.Sheets("Data")
Dim ws2 As Worksheet: Set ws2 = ThisWorkbook.Sheets("Analysis")   

j = 2

lastrow = ws1.Cells(Rows.Count, 1).End(xlUp).Row
    
For i = 4 To lastrow

    If ws1.Cells(i, 17) = 1 Then
        ws1.Range(Cells(i, 1), Cells(i, 16)).Copy
        ws2.Range(Cells(j, 1), Cells(j, 16)).PasteSpecial Paste:=xlPasteValues, _
                            Operation:=xlNone, _
                            SkipBlanks:=True, _
                            Transpose:=False
     j = j + 1
End If
Next i

End Sub

调试功能表示错误

ws1.Range(Cells(i, 1), Cells(i, 16)).Copy

我尽力进行修改,但仍然无法正常工作,请给我一点帮助:(非常感谢。

用户名

ws2.Range(Cells(j, 1), Cells(j, 16)).PasteSpecial没有充分引用范围为属于ws2Cells(...)范围内可以属于任何工作; 他们必须专门属于ws2同样的道理ws1

ws1.Range(ws1.Cells(i, 1), ws1.Cells(i, 16)).Copy
ws2.Range(ws2.Cells(j, 1), ws2.Cells(j, 16)).PasteSpecial Paste:=xlPasteValues, _
                        Operation:=xlNone, _
                        SkipBlanks:=True, _
                        Transpose:=False

自动筛选方法可以通过批量值传输为您节省一些时间。

Sub PlotGraph()
    Dim i As Long, j As Long, lr As Long
    Dim ws1 As Worksheet
    Dim ws2 As Worksheet

    Set ws1 = ThisWorkbook.Sheets("Data")
    Set ws2 = ThisWorkbook.Sheets("Analysis")

    j = 2

    With ws1
        lr = .Cells(Rows.Count, 1).End(xlUp).Row

        With .Range(.Cells(3, 1), .Cells(lr, 17)) 'Range(A3:Q & lr) need header row for autofilter
            .AutoFilter field:=17, Criteria1:=1
            With .Resize(.Rows.Count - 1, 16).Offset(1, 0)
                If CBool(Application.Subtotal(103, .Cells)) Then
                    .Cells.Copy _
                      Destination:=ws2.Cells(j, 1)
                    'optional Copy/PasteSpecial xlPasteValues method
                    '.Cells.Copy
                    'ws2.Cells(j, 1).PasteSpecial Paste:=xlPasteValues
                    '▲ might want to locate row j properly instead of just calling it 2
                End If
            End With
        End With

    End With
End Sub

我注意到您使用的是Range.PasteSpecial方法xlPasteValues如果您需要仅值转移,则可以接受。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Excel VBA:复制/粘贴范围

来自分类Dev

在VBA Excel中复制粘贴范围

来自分类Dev

VBA代码将Excel范围复制并粘贴到Outlook中

来自分类Dev

Excel vba - 如何在范围变化时复制/粘贴

来自分类Dev

Excel VBA复制粘贴

来自分类Dev

Excel VBA 从 Excel 复制范围并将其粘贴到 Word 标题文本框

来自分类Dev

VBA Excel:复制粘贴具有隐藏行的命名范围

来自分类Dev

Excel VBA-复制多个范围并按选择顺序粘贴它们而不会覆盖

来自分类Dev

在VBA和Excel中复制粘贴具有随机范围的图片

来自分类Dev

使用VBA将动态范围复制并粘贴到Excel中的新工作表

来自分类Dev

Excel VBA - 遍历文件夹中的文件,复制范围,粘贴到此工作簿中

来自分类Dev

使用Outlook VBA从Excel文件复制/粘贴。

来自分类Dev

在Excel中使用VBA复制粘贴

来自分类Dev

Excel VBA复制文件但不粘贴

来自分类Dev

复制粘贴为值 Excel VBA

来自分类Dev

Excel VBA 行复制粘贴错误

来自分类Dev

excel VBA 上的复制粘贴列

来自分类Dev

在 VBA excel 上复制和粘贴

来自分类Dev

Excel VBA 仅复制粘贴值

来自分类Dev

在VBA Excel中多次将一个范围复制并粘贴到另一个范围的代码

来自分类Dev

VBA 从 Excel 复制到 PowerPoint(不是“复制和粘贴”)

来自分类Dev

如何使用excel vba从特定单元格复制并将其粘贴到另一个范围

来自分类Dev

如何在 Excel 中复制和粘贴动态范围?

来自分类Dev

Excel 2010 VBA帮助复制列的范围

来自分类Dev

使用Excel VBA复制列中的范围

来自分类Dev

Excel VBA问题-复制索引范围的语法

来自分类Dev

从Excel复制粘贴

来自分类Dev

Excel VBA复制和粘贴循环内循环

来自分类Dev

Excel VBA从工作簿复制和插入/粘贴特殊值

Related 相关文章

热门标签

归档