首页 > 解决方案 > Excel VBA 宏 - 类范围的复制方法失败

问题描述

我正在编写一个宏,它应该将整个行从某个工作表(“Global_IB”)复制到同一个 Excel 文件中的另一个工作表(“插值”)。我需要复制和粘贴信息以利用数据,而无需触及原始数据库中的任何内容。

在下面的代码中,我基本上继续找到我的数据库的最后一行:LR。然后我继续复制“Global_IB”的前三列(没有标题行),并将它们粘贴到 A、B 和 C 行的“插值”中。对于我感兴趣的其他行,依此类推。

只要“Global_IB”具有合理数量的行,此代码就可以完美运行。

当我尝试使用整个文件(52 000 行)时,出现错误:“类范围的复制方法失败”。

我已经读到这可能与 excel 将它可以一次复制的行数限制为 2516 的事实有关,但有趣的是,当我使用 3000 行等时它对我有用。

我很想知道你是否知道问题是什么以及我如何解决它。也许是一个循环,一次复制和粘贴有限数量的行。如果是,您将如何调整代码?我自己似乎无法做到这一点。

非常感谢您的帮助!

Private Sub copieIB()
        
Dim LR As Long
        
LR = Sheets("Global_IB").Cells(Rows.Count, 3).End(xlUp).Row
        
Application.Calculation = xlManual
        
'Copy in Interpolated Value
    
Sheets("Interpolated_Value").Range("A2").Resize(LR - 1, 3).Value = Sheets("Global_IB").Cells(2, 4).Resize(LR - 1, 3).Value
Sheets("Interpolated_Value").Range("D2").Resize(LR - 1, 1).Value = Sheets("Global_IB").Cells(2, 8).Resize(LR - 1, 1).Value
Sheets("Interpolated_Value").Range("E2").Resize(LR - 1, 1).Value = Sheets("Global_IB").Cells(2, 10).Resize(LR - 1, 1).Value
Sheets("Interpolated_Value").Range("F2").Resize(LR - 1, 1).Value = Sheets("Global_IB").Cells(2, 14).Resize(LR - 1, 1).Value
Sheets("Interpolated_Value").Range("G2").Resize(LR - 1, 1).Value = Sheets("Global_IB").Cells(2, 18).Resize(LR - 1, 1).Value
            
Application.Calculation = xlAutomatic
            
End Sub

标签: excelvbacopyrangecopy-paste

解决方案


推荐阅读