我们无法粘贴Excel范围,因为复制区域和粘贴区域的大小不同

时间:2015-06-18 01:12:56

标签: vba excel-vba excel

我想循环遍历Worksheet1中的A列,找到第一个具有指定文本" Oil Production"的单元格。此单元格是我希望复制到Worksheet2的数组中的第一个单元格。这个单元格和数组的大小会不时变化,因此我使用的代码也是如此。然后我将它粘贴到Worksheet2中的单元格B7中,它永远不会改变。

这是我的公式。我在第Promise.all()

处收到错误
ActiveSheet.Paste

1 个答案:

答案 0 :(得分:-1)

调整区域大小:

Sub Test()
Dim MyRowCount As Long, MyColCount As Long
Application.ScreenUpdating = False
For Each Cell In Sheets("Sheet1").Range("A1:A" & Range("A" & Rows.count).end(xlup).row) 'This make it poll the used data rather than the whole column
    If Cell.Value = "Oil Production" Then
        ActiveSheet.Cells.Select
        With Range(ActiveCell, Cells(ActiveCell.End(xlDown).Row, ActiveCell.End(xlToRight).column))
            .Copy
            MyRowCount = .Rows.Count
            MyColCount = .Columns.Count
        End With
        Sheets("Sheet2").Select
        Range("B7").Resize(MyRowCount, MyColCount).PasteSpecial xlPasteAll
        'Do you need to flick back to Sheet1 after pasting?
    End If
Next
End Sub

我还为你挑选了一堆选择。

Range("A1").Select
Selection.Paste

可以写成

Range("A1").PasteSpecial XLPasteAll

你可以用这种方式砍掉大多数选择,你可以看到我也用你正在复制的范围来完成它