excel最大行数限制能修改吗(Excel 如何获取工作表最大行和列)

No.1 由于版本不同,Excel可处理的最大行和列都有一定的限制要求,如何来获取这些值来对编辑的程序进行容错处理,就显得十分重要。 本节主要介绍两个属性,可返回工作表的行和列。 上图是...

No.1

由于版本不同,Excel可处理的最大行和列都有一定的限制要求,如何来获取这些值来对编辑的程序进行容错处理,就显得十分重要。

本节主要介绍两个属性,可返回工作表的行和列。

6c335bd3648a4782a4c2c4f4c5077605.jpg

上图是两个属性:Application.Columns 和 Application.Rows

如果熟悉VBA,对此也不会陌生,Application.Columns 返回一 个 Range 对象,该对象代表活动工作表上的所有列;Application.Rows返回一 个 Range 对象,该对象代表活动工作表上的所有行。

语法:

Application.Columns

Application.Rows

在不使用对象识别符的情况下使用此属性等效于使用 ActiveSheet.Rows,也就是当前工作表的行数。

36a877d898ce43d1bcf9cfca7487949f.jpg

上图是示例,返回当前工作表行数,然后定义一个数组,保存到数组中。

注意:这个数组大小是有一定要求的,并不是说把所有行都会保存在数组中,由于内存硬件的限制会出现内存会溢出错误。

如何对这个错误进行规避呢?可以使用一些错误提示机制来进行。

本例中用到另一个对象Err,可以在出现内存溢出的时候提前结束定义数组,也就实现了溢出前停止数组定义,那么多出的数据就不能进行数组处理了。

其实,从这一方来讲,VBA并不能完美地解决任何问题,特别是当数据量达到一个量级的时候就无法进行了。

这就和计算机的硬件有关了,并不是软件存在问题,如果硬件达到无限可能,软件实际上是没有边际的。

这也就是说Excel是一个相对轻量组的数据管理软件,对于更大数据处理就无能为力了。

那样的情况下可以转移到数据库当中进行处理,是真的好。

9af737349ffd42d881e798f8acdb7a84.jpg

No.2

代码

Private Sub CommandButton1_Click()Dim rArr, ri As Long, R As Range, R1 As Range, R2 As Range, R3 As Range, Rs As RangeSet Rs = Application.Rows'返回行单元格Set R1 = ActiveSheet.Range("A1")Set R2 = ActiveSheet.Range("A2")Set R3 = ActiveSheet.Range("A3")ReDim rArr(0)    For Each R In Rs        On Error GoTo Ne100'如果出现错误 程序跳转到Ne100:        ReDim Preserve rArr(ri)'重定义数组        rArr(ri) = R.Value'数组赋值        R1.Value = ri        ri = ri + 1    Next RNe100:R2.Value = "当前数组有: " & UBound(rArr) & "个元素"R3.Value = "当前工作表有: " & Rs.Count & "个单元格行"MsgBox Err.Description & VBA.vbCrLf & Err.Number'输出错误提示Err.ClearErase rArr'释放数组Set Rs = NothingSet R = NothingThisWorkbook.SaveEnd Sub

如果没有研究,不建议调试上述代码,特别是在重要文件当中,虽然做了一些避免内存溢出处理方法,但是在多次调试过程当中,同样会出现内存溢出,导致Excel应用重启。

  • 发表于 2024-05-01 14:24:23
  • 阅读 ( 42 )
  • 分类:互联网

0 条评论

请先 登录 后评论
95
95

579 篇文章

你可能感兴趣的文章

相关问题