36

中央の空白行を含め、Excelシートの最後の行を特定するにはどうすればよいですか?

この機能で:

Function ultimaFilaBlanco(col As String) As Long        
        Dim lastRow As Long
        With ActiveSheet
            lastRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, col).End(xlUp).row
        End With            
        ultimaFilaBlanco = lastRow          
End Function

そしてこのデータ:

Row 1 : Value
Row 2 : Value
Row 3 : Value
Row 4 : Value
Row 5 : Value
Row 6 : White
Row 7 : Value
Row 8 : Value
Row 9 : Value
Row 10  : White
Row 11  : White
Row 12  : White
Row 13  : Value
Row 14  : White

関数は5を返し、13が必要です。それを行う方法はありますか?

4

11 に答える 11

59

使用された最後の行の数を取得する最良の方法は次のとおりです。

ActiveSheet.UsedRange.Rows.Count現在のシートの

Worksheets("Sheet name").UsedRange.Rows.Count特定のシートの。

最後に使用された列の番号を取得するには:

ActiveSheet.UsedRange.Columns.Count現在のシートの

Worksheets("Sheet name").UsedRange.Columns.Count特定のシートの。

これが役立つことを願っています。

アブド

于 2013-06-12T14:19:29.413 に答える
26
ActiveSheet.UsedRange.Rows.Count + ActiveSheet.UsedRange.Rows(1).Row -1

短い。安全。速い。シートの上または他の場所に空白行がある場合でも、空でない最後の行を返します。空のシートでも機能します (Excel は空のシートで 1 行を使用していると報告するため、式は 1 になります)。Excel 2002 および Excel 2010 でテストされ、動作しています。

于 2013-12-23T14:30:56.973 に答える
18

私は以下を使用します:

lastrow = ActiveSheet.Columns("A").Cells.Find("*", SearchOrder:=xlByRows, LookIn:=xlValues, SearchDirection:=xlPrevious).Row

特定の列の最後の行を見つけます。任意の列で最後に使用された行が必要な場合は、次のようにします。

lastrow = ActiveSheet.Cells.Find("*", SearchOrder:=xlByRows, LookIn:=xlValues, SearchDirection:=xlPrevious).Row
于 2012-12-03T17:24:18.060 に答える
15

あなたは本当に近くにいます。大きな行番号を使用してみてくださいEnd(xlUp)

Function ultimaFilaBlanco(col As String) As Long

        Dim lastRow As Long
        With ActiveSheet
            lastRow = ActiveSheet.Cells(1048576, col).End(xlUp).row
        End With

        ultimaFilaBlanco = lastRow

End Function
于 2012-12-03T16:18:57.577 に答える
4
LastRow = ActiveSheet.UsedRange.Rows.Count
于 2012-12-03T16:19:07.700 に答える
3

問題は、関数の「文字列として」です。それを機能させるには、「as double」または「as long」に置き換えます。このようにして、最後の行が受け入れられた回答で提案された「多数」よりも大きい場合でも機能します。

だからこれはうまくいくはずです

Function ultimaFilaBlanco(col As double) As Long        
    Dim lastRow As Long
    With ActiveSheet
        lastRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, col).End(xlUp).row
    End With            
    ultimaFilaBlanco = lastRow          
End Function
于 2013-06-14T12:03:43.927 に答える