2012-05-09 84 views
1
计算总行

我写一个VBA宏来计算的Excel sheet2行数文件Excel文件中VBA

Dim cnt As Integer 
Dim i As Integer 

cnt = Range("Sheet2").Rows.Count ' giving error at this row 
For i = 2 To cnt 
    t1 = "A" + CStr(i) 
    t2 = "B" + CStr(i) 
Next i 

但它给错误:

Method 'Range' of object '_global' failed

+0

您会得到什么错误? –

+0

我得到这个错误(方法'范围'的对象'_global'失败 –

回答

1

Sheet2的是表格,而不是范围。

Worksheets("Sheet2").Rows.Count 
+0

我得到这个错误(运行时错误6:溢出) –

+0

我已经添加了分辨率的更新部分 –

5

Range用于小区范围不为Excel表

尝试如下:

  1. 习惯行的计数:

    cnt = Worksheets("Sheet2").Cells.SpecialCells(xlCellTypeLastCell).Row 
    
  2. 要获得片的所有行的计数:

    cnt = Worksheets("Sheet2").Rows.Count 
    
  3. 获取特定Range的行计数:

    cnt = Worksheets("Sheet2").Range("A1:A6500").Rows.Count 
    

我认为你正在寻找用于单元格区域。将变量定义为Long来解决溢出问题

Dim cnt As Long 
Dim i As Long 
+0

库马尔,你有没有尝试过上面的代码? –

+0

只是简单的说明,你的第三个选项并不是非常有用,因为如果他们对范围进行硬编码(1:6500),那么他们已经知道有6500行。另一种获得行数的有用方法是'cnt =工作表(“Sheet2”)。Range(“A1”)。CurrentRegion.Rows.Count'。这将得到使用的范围直到第一个空白行 – Zairja

+0

我刚刚提供了一个例子,请不要坚持值。你可以使用任何excel范围并获得行数。 –