.End(xlDown)。从Excel 2007到2010的更改

时间:2013-05-28 18:50:23

标签: vba excel-vba excel-2010 excel-2007 excel

从Office 2007更新到Office 2010后,这些宏在Excel 2007中完美运行但在2010年无效。具体来说,我在此行收到错误:

    y = Worksheets("Raw Data").Range("A2").End(xlDown).Row

热错误是“错误6溢出”。我已经意识到这是由于Excel选择excel中创建溢出的行的最大数量(1048576)。这些行中只有975个数据。在2007年,它只选择了包含数据的行。 我想知道是什么导致了从2007年到2010年代码处理方式的变化?有没有其他人经历过这种情况?

2 个答案:

答案 0 :(得分:1)

确保y variable(以及引用行号的其他变量)声明为Long,如:

Dim y As Long

我猜你的变量目前是Integer

我猜可能在此期间您可能已将文件从.xls迁移到.xlsm,这可能会导致一些问题。

答案 1 :(得分:0)

尝试以下

  With Worksheets("Raw Data")
        y = .Range("A" & .Rows.Count).End(xlUp).Row
    End With