Trouver la dernière ligne et colonne dans VBA
- Syntaxe du code
- Obtenir la dernière ligne/colonne avec des données dans la feuille de calcul en cours dans VBA
- Obtenir la dernière ligne/colonne avec les données d’une autre feuille de calcul dans VBA
- Obtenir la dernière ligne/colonne d’une feuille de calcul à l’aide d’une fonction
Lorsque nous traitons des données dans une feuille de calcul, nous devons connaître la dernière ligne et la dernière colonne contenant des données. Il est utile de définir une limite où notre curseur peut itérer.
VBA n’a pas de fonction intégrée pour renvoyer la dernière ligne/colonne utilisée dans une feuille de calcul. Mais avec l’utilisation de solutions VBA simples, nous pouvons créer notre fonction définie par l’utilisateur conçue pour renvoyer la valeur de la dernière ligne/colonne utilisée dans une feuille de calcul.
Cet article explique comment rechercher la dernière ligne et la dernière colonne utilisées dans une feuille de calcul à l’aide d’Excel VBA.
Syntaxe du code
Code pour obtenir la dernière ligne :
Cells(Rows.Count,[colNum]).End(xlUp).Row
code pour obtenir la dernière colonne :
Cells(Rows.Count,[rowNum]).End(xlUp).Row
Où,
[colNum] |
Valeur entière de la colonne où se trouve la dernière ligne |
[rowNum] |
Valeur entière de la ligne où se trouve la dernière colonne |
Obtenir la dernière ligne/colonne avec des données dans la feuille de calcul en cours dans VBA
Le bloc de code ci-dessous doit être écrit sur la feuille de calcul cible sur Microsoft Excel Objects
.
Sub GetLastRowCol()
'Declare lastRow and Last Col as Long datatype as we need to presume the values will be _
assigned with these variables are very high numbers.
Dim lastRow as Long
Dim lastCol as Long
'Assigning lastRow and lastCol variable
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
lastCol = Cells(1, Columns.Count).End(xlToLeft).Column
Debug.Print "The last Row is: " & lastRow & vbNewline & "The last Column is :" & lastCol
End Sub
Production :
The last Row is :1
The last Column is :1
Obtenir la dernière ligne/colonne avec les données d’une autre feuille de calcul dans VBA
Lorsque nous traitons plusieurs feuilles de calcul, nous devons attribuer explicitement la feuille de calcul dans laquelle nous nous trouvons actuellement.
Le bloc de code ci-dessous montrera comment obtenir la dernière ligne/colonne utilisée à partir d’une feuille de calcul différente.
Sub GetLastRowCol()
'Declare lastRow and Last Col as Long datatype as we need to presume the values will be _
assigned with these variables are very high numbers.
Dim lastRow as Long
Dim lastCol as Long
'Declaring workbook and worksheets
Dim wb as Workbook
Dim s1, s2 as Worksheet
'Initializing the wb, s1, and s2 objects.
Set wb = ThisWorkBook
Set s1 = wb.Sheets("Sheet1")
Set s2 = wb.Sheets("Sheet2")
'Will return the row number of the last row in Column A on Sheet1
lastRow = s1.Cells(s1.Rows.Count, 1).End(xlUp).Row
'Will return the row number of the last row in Row 1 on Sheet1
lastCol = s1.Cells(1, s1.Columns.Count).End(xlToLeft).Column
Debug.print "The last row in Sheet1:" & lastRow & vbNewline & "The last column in Sheet 1:" & lastCol
'Will return the row number of the last row in Column A on Sheet2
lastRow = s2.Cells(s2.Rows.Count, 1).End(xlUp).Row
'Will return the row number of the last row in Column A on Sheet2
lastCol = s2.Cells(1, s2.Columns.Count).End(xlToLeft).Column
Debug.print "The last row in Sheet2:" & lastRow & vbNewline & "The last column in Sheet 2:" & lastCol
End Sub
Production :
The last row in Sheet1: 1
The last column in Sheet1: 1
The last row in Sheet2: 1
The last column in Sheet2: 1
Obtenir la dernière ligne/colonne d’une feuille de calcul à l’aide d’une fonction
La fonction ci-dessous renverra la dernière ligne ou la dernière colonne en fonction de l’argument Worksheet.
Function GetLastRow(s As Worksheet) As Long
GetLastRow = s.Cells(s.Rows.Count, 1).End(xlUp).Row
End Function
Function GetLastCol(s As Worksheet) As Long
GetLastCol = s.Cells(1, s.Columns.Count).End(xlToLeft).Column
End Function
Sub testRow()
Dim wb As Workbook
Dim s1 As Worksheet
Set wb = ThisWorkbook
Set s1 = wb.Sheets("Sheet1")
Debug.Print GetLastRow(s1)
End Sub
Sub testCol()
Dim wb As Workbook
Dim s1 As Worksheet
Set wb = ThisWorkbook
Set s1 = wb.Sheets("Sheet1")
Debug.Print GetLastCol(s1)
End Sub
Sortie testRow
:
1
Sortie testCol
:
1