Vba 在超过65536行时查找最后一行
我在纸上循环,所以I是循环的一部分。行数超过65536行,如何调整。提前感谢。您应该使用行数,而不是硬编码值Vba 在超过65536行时查找最后一行,vba,excel,Vba,Excel,我在纸上循环,所以I是循环的一部分。行数超过65536行,如何调整。提前感谢。您应该使用行数,而不是硬编码值 ws1.Cells(1, i).Copy ws2.Range("a65536").End(xlUp).Offset(1, 0) 您应该使用行数,而不是硬编码的值 ws1.Cells(1, i).Copy ws2.Range("a65536").End(xlUp).Offset(1, 0) 最简单的方法是wks.usedrange.rows.count。合理确定保存工作簿时与u
ws1.Cells(1, i).Copy ws2.Range("a65536").End(xlUp).Offset(1, 0)
您应该使用行数,而不是硬编码的值
ws1.Cells(1, i).Copy ws2.Range("a65536").End(xlUp).Offset(1, 0)
最简单的方法是
wks.usedrange.rows.count
。合理确定保存工作簿时与usedrange更新相关的错误已在post excel中修复 最简单的方法是wks.usedrange.rows.count
。合理确定保存工作簿时与usedrange更新相关的错误已在post excel中修复 请记住,您始终可以在excel工作表上获取上次使用的范围,如下所示:
With ws2
ws1.Cells(1, i).Copy .Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0)
End With
为了回答您的问题,您可以使用我前面的示例:
Dim lastRange as Range
Dim lastColumn as Long
Dim lastRow as Long
Set lastRange = Worksheets(?).UsedRange.SpecialCells(xlCellTypeLastCell)
lastColumn = lastRange.Column 'return the last column index
lastRow = lastRange.Row 'return the last row index
这两种说法都能帮到你。请注意,必须在循环中重新定义lastRange对象和lastRow变量,否则lastRange变量将保留其初始化值
祝你好运
Andrés Alejandro García Hurtado。请记住,您始终可以在excel工作表上获得最后使用的范围,如下所示:
With ws2
ws1.Cells(1, i).Copy .Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0)
End With
为了回答您的问题,您可以使用我前面的示例:
Dim lastRange as Range
Dim lastColumn as Long
Dim lastRow as Long
Set lastRange = Worksheets(?).UsedRange.SpecialCells(xlCellTypeLastCell)
lastColumn = lastRange.Column 'return the last column index
lastRow = lastRange.Row 'return the last row index
这两种说法都能帮到你。请注意,必须在循环中重新定义lastRange对象和lastRow变量,否则lastRange变量将保留其初始化值
祝你好运
安德烈·亚历杭德罗·加西亚·赫塔多。所有简明的解决方案都有失败的案例。在栏完全空白的情况下,接受的答案将产生错误的结果 以下是一种不同的方法,只要数据上方或中间没有空格:
ws1.Cells(1, i).Copy ws2.Range("A" & lastRow).Offset(1, 0) 'or
ws1.Cells(1, i).Copy ws2.Cells(lastRow, 1).Offset(1, 0)
所有简明的解决方案都有失败的情况。在栏完全空白的情况下,接受的答案将产生错误的结果 以下是一种不同的方法,只要数据上方或中间没有空格:
ws1.Cells(1, i).Copy ws2.Range("A" & lastRow).Offset(1, 0) 'or
ws1.Cells(1, i).Copy ws2.Cells(lastRow, 1).Offset(1, 0)
在某些情况下,使用
CountLarge
代替Count
可能也是一个好主意?我不认为当前的行数会导致溢出错误,但这是我过去在计算单元格时遇到的问题…@eirikdaude如果返回的结果可能超过了Long的最大值,请使用CountLarge。在对单个列中的行进行计数时没有问题(至少在当前工作表限制的情况下)。您必须对>2000列中的单元格进行计数,才能当前使用CountLong。在某些情况下,使用CountLarge
而不是count
可能也是一个好主意?我不认为当前的行数会导致溢出错误,但这是我过去在计算单元格时遇到的问题…@eirikdaude如果返回的结果可能超过了Long的最大值,请使用CountLarge。在对单个列中的行进行计数时没有问题(至少在当前工作表限制的情况下)。您必须对>2000列中的单元格进行计数,才能当前使用CountLong。以前已被多次询问<代码>xlUp如下所示通常会给出正确的答案,空白列是一个边缘条件,而它不会<代码>查找比以前多次要求的更好<代码>xlUp如下所示通常会给出正确的答案,空白列是一个边缘条件,而它不会<代码>查找更好