2011-09-20 7 views
-1

스프레드 시트를 통해 정렬하는 프로그램을 작성하면 데이터의 마지막 줄을 찾은 다음 사용 가능한 다음 행의 새 텍스트를 복사/붙여 넣기 할 수 있습니까?프로그램에서 스프레드 시트의 다음 사용 가능한 행을 찾는 방법이 있습니까?

+4

시도해 보셨습니까? –

+0

데이터에 공백이 있습니까? 아니면 연속적입니까? – RonnieDickson

+1

이 질문에 대한 답변이 이미 있습니다. "vba excel last row find"에 대한 StackOverFlow를 빠르게 검색하면 다음과 같은 멋진 솔루션이 제공됩니다. http : //stackoverflow.com/questions/4092329/find-bottom-of-excel-worksheet-in- vba – Jon49

답변

0

이 UDF는 첫 번째 매개 변수에서 시트 이름을 수신하고 행을 찾기 위해 열 문자를 사용하면 사용 가능한 다음 행을 반환합니다. 사용하려면

Function GetLin(Sht As String, Col As String) 
'officevb.com 
Dim UltLinPlan As Long 

'Get a last row in sheet 
UltLinPlan = Sheets(Sht).Range("A65536").End(xlDown).Row 

'Return this number 
GetLin = Sheets(Sht).Range(Col & UltLinPlan).End(xlUp).Offset(1, 0).Row 

End Function 

은 매우 간단합니다

dim x as long 

x=GetLin("Sheet1","A") 

이 샘플은 Sheet1의

에서 열 A의 다음 행을 반환

[]의

+1

범위 바꾸기 ("A65536")를 Excel (65536)이 더 이상 Excel 2007 및 이후 버전의 마지막 행이 아니기 때문에 Excel 버전에 관계없이 셀 (Rows.Count, 1)과 비교합니다. – RonnieDickson

+0

로니,이 버전은 Office 2007/2010에서 작동합니다. 이 줄 'UltLinPlan = Sheets (Sht) .Range ("A65536") 끝내기 (xlDown) .Row' 방향을 확인하십시오! –

+0

xlUp이어야합니다. 이것은 표준 Excel 실습입니다. 마지막 행을 찾고 CTRL + 위쪽 화살표를 모방하여 마지막 행을 찾습니다. 65,536 행 미만인 경우에는 주석 처리 된 변경 사항없이 작업 할 수 있습니다. – RonnieDickson

0

브루노의 방법은 이후 버전에서 작동하지 않습니다 Row 65536 이후에 데이터가 Column A 인 경우 Excel의 또한 시트 끝에 (버전에 관계없이) 데이터가있는 경우 xlUp을 수행하면 true 끝에서 건너 뜁니다.

이 방법은 가장 마지막 행을 빠르게 확인하는 일반적인 방법에 의존합니다.

Sub getlin2() 

Dim lin As Long 
Dim Sht As String 
Dim Col As String 

Col = "A" 
Sht = "Sheet1" 

lin = Sheets(Sht).Rows.Count 
If Sheets(Sht).Range(Col & lin).Value = vbNullString Then 
    lin = Sheets(Sht).Range(Col & Sheets(Sht).Rows.Count).End(xlUp).Offset(1, 0).Row 
End If 

MsgBox lin 

End Sub 
관련 문제