2012-05-09 85 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範圍並獲得行數。 –