VBA에서 사용된 마지막 행을 결정하는 방법(빈칸 포함)
중간에 있는 빈 줄을 포함하여 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이 필요합니다.어떻게 하는지 아세요?
마지막 행 수를 가져오는 가장 좋은 방법은 다음과 같습니다.
ActiveSheet.UsedRange.Rows.Count
당좌표에 대하여.
Worksheets("Sheet name").UsedRange.Rows.Count
특정 시트에 대해.
마지막으로 사용한 열 번호를 가져오는 방법
ActiveSheet.UsedRange.Columns.Count
당좌표에 대하여.
Worksheets("Sheet name").UsedRange.Columns.Count
특정 시트에 대해.
이것이 도움이 되길 바랍니다.
압도
ActiveSheet.UsedRange.Rows.Count + ActiveSheet.UsedRange.Rows(1).Row -1
짧습니다. 안전합니다.빠름. 시트의 맨 위 또는 다른 위치에 빈 줄이 있더라도 비어 있지 않은 마지막 행을 반환합니다.빈 시트에도 사용할 수 있습니다(Excel은 빈 시트에 사용된 행이 1이므로 식은 1이 됩니다).Excel 2002 및 Excel 2010 테스트 및 작업.
다음을 사용합니다.
lastrow = ActiveSheet.Columns("A").Cells.Find("*", SearchOrder:=xlByRows, LookIn:=xlValues, SearchDirection:=xlPrevious).Row
특정 열의 마지막 행을 찾습니다.열에 대해 마지막으로 사용한 행을 원하는 경우:
lastrow = ActiveSheet.Cells.Find("*", SearchOrder:=xlByRows, LookIn:=xlValues, SearchDirection:=xlPrevious).Row
당신은 정말 가깝습니다.큰 행 번호를 사용해 보십시오.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
LastRow = ActiveSheet.UsedRange.Rows.Count
문제는 함수의 "as string"입니다."두 배로" 또는 "오래"로 대체하여 작동합니다.이렇게 하면 마지막 행이 허용된 답변에서 제안된 "큰 숫자"보다 클 경우에도 작동합니다.
그래서 이것은 효과가 있을 것입니다.
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
시트 상단에 미사용 영역이 포함되어 있는 경우,UsedRange.Rows.Count
최대 행이 아닙니다.
올바른 최대 행 번호입니다.
maxrow = Sheets("..name..").UsedRange.Rows(Sheets("..name..").UsedRange.Rows.Count).Row
언급된 모든 방법 외에도 워크시트 또는 지정된 범위에서 마지막 행이나 열을 찾는 방법은 여러 가지가 있습니다.
Function FindingLastRow(col As String) As Long
'PURPOSE: Various ways to find the last row in a column or a range
'ASSUMPTION: col is passed as column header name in string data type i.e. "B", "AZ" etc.
Dim wks As Worksheet
Dim lstRow As Long
Set wks = ThisWorkbook.Worksheets("Sheet1") 'Please change the sheet name
'Set wks = ActiveSheet 'or for your problem uncomment this line
'Method #1: By Finding Last used cell in the worksheet
lstRow = wks.Range("A1").SpecialCells(xlCellTypeLastCell).Row
'Method #2: Using Table Range
lstRow = wks.ListObjects("Table1").Range.Rows.Count
'Method #3 : Manual way of selecting last Row : Ctrl + Shift + End
lstRow = wks.Cells(wks.Rows.Count, col).End(xlUp).Row
'Method #4: By using UsedRange
wks.UsedRange 'Refresh UsedRange
lstRow = wks.UsedRange.Rows(wks.UsedRange.Rows.Count).Row
'Method #5: Using Named Range
lstRow = wks.Range("MyNamedRange").Rows.Count
'Method #6: Ctrl + Shift + Down (Range should be the first cell in data set)
lstRow = wks.Range("A1").CurrentRegion.Rows.Count
'Method #7: Using Range.Find method
lstRow = wks.Column(col).Cells.Find("*", SearchOrder:=xlByRows, LookIn:=xlValues, SearchDirection:=xlPrevious).Row
FindingLastRow = lstRow
End Function
참고: 문제 진술을 정당화하기 위해 위의 방법 중 하나만 사용하십시오.
Find 메서드는 셀 형식 지정이 아니라 데이터만 인식하므로 데이터만 중요하고 형식 지정이 아닌 경우 xlCellTypeLastCell을 찾습니다.또한 병합된 셀(피해야 함)은 병합된 셀의 마지막 셀이 아닌 첫 번째 셀의 행 번호를 제공하므로 예기치 않은 결과를 제공할 수 있습니다.
ActiveSheet.UsedRange.Rows(ActiveSheet.UsedRange.Rows.count).row
활성 시트는 다음으로 대체할 수 있습니다.WorkSheets(1)
또는WorkSheets("name here")
예를 들어 첫 번째 행 'A'에서 다음 빈 행을 찾기 위한 코드입니다.다른 행에 사용하려면 셀만 변경합니다(i, 2 또는 3 또는 4 등).
Sheets("Sheeet1").Select
for i=1 to 5000
if cells(i,1)="" then nextEmpty=i goto 20
next i
20 'continue your code here
enter code here
향상:
if cells(i,1)="" then
nextEmpty=i:
exit for
언급URL : https://stackoverflow.com/questions/13686801/how-to-determine-the-last-row-used-in-vba-including-blank-spaces-in-between
'programing' 카테고리의 다른 글
dplyr로 여러 열을 요약하시겠습니까? (0) | 2023.06.06 |
---|---|
오류: Firebase ID 토큰이 만료되었습니다. (0) | 2023.06.06 |
ld option -lrt가 가리키는 라이브러리는 무엇입니까(바이오닉 libc)? (0) | 2023.06.06 |
작업:app:upploadCrashlyticsMappingFileRelease 실패한 파일 컬렉션에 정확히 하나의 파일이 포함되어야 하지만 파일이 없습니다. (0) | 2023.06.06 |
re.split("()+")로 문자열을 분할할 때 결과 목록에 공백이 하나 있습니다. 더 나은 방법이 있습니까? (0) | 2023.06.06 |