1

我正在尝试使用 VBA 获取 excel 工作表的表格边界。我已经使用 C# 完成了这项工作,但现在我需要尝试将该代码转换为 VBA。

一个问题是语法似乎如此不同,以至于代码看起来甚至不相似,甚至或者它只是在做同样的事情!我想我已经非常接近计算出一张桌子的尺寸了,但我收到了这条Run-time error '6': Overflow信息。

这是代码:

Dim currentRow As Integer
Dim totalRow As Integer
Dim column As Integer

currentRow = 2

Do
ActiveCell.Offset(1, 0).Select
totalRow = totalRow + 1
Loop Until IsEmpty(ActiveCell.Offset(0, 1)) = False

一旦接近完成,就会发生错误Do loop。我读到另一个论坛回复说 VB 很慢,并且一个潜在的错误是Do loop速度太快,从而导致溢出。如果是这样的话,我完全不确定如何解决它。

有没有人有办法解决溢出问题?

4

2 回答 2

2

使用 Range 的 .End 方法而不是循环查找第一个空单元格。

于 2011-02-16T22:42:18.040 回答
0

您可能想查看 UsedRange。尝试

 Dim totalRow As Long

UsedRange: http: //msdn.microsoft.com/en-us/library/microsoft.office.tools.excel.worksheet.usedrange
(VS.80).aspx 数据类型:http: //msdn.microsoft.com/en -us/library/aa164754(v=office.10).aspx

于 2011-02-16T22:41:03.013 回答