2014-06-20 2 views
1

현재 2005 년 초에 작성되어 이전 버전의 Excel에서 실행되는 매크로를 수정하고 있습니다. 최근에 MS Excel 2010에서 사용되고 있지만 MS Excel 2013을 사용하여 코드를 수정하고 있습니다. 효과 또는 호환성 문제가 있습니까?MS Excel 2010과 MS Excel 2013 간의 매크로 처리 차이

다른 버전의 Excel에서 매크로 처리를 설명하는 링크는 대단히 감사하겠습니다. 고맙습니다.

+2

Google을 사용해 보셨습니까? 링크를위한 좋은 자료입니다. – sous2817

+0

예, 불행히도 제가 찾던 것을 찾지 못했습니다. 그래서 사람들로부터 답변을 얻거나 링크를 얻으려는 이유입니다. – clintgh

답변

2

Excel 2007에서 Microsoft는 "Big Grid"를 소개했습니다. 이것은 사용자가 잠재적으로 활용하기 시작한 가용 행과 열의 수가 크게 증가했습니다.

는 아마 당신은 2005 년에 귀하의 비즈니스에 대한 VBA를 작성하는 미래 지향적 그룹을했다,하지만 내 오래된 공연에서 다음은 마지막 행을 식별하는 현상을했다 : 2007, 2010 또는 2013 경우

LastRow = Range("A65536").End(xlUp).Row 

을 워크 시트에 65,536 개 이상의 채워진 행이 있으면 위의 내용은 예상 결과를 반환하지 않으며 이전 스크립트는 실패하거나 잘못된 결과를 반환합니다.

당신은 위의 같은 어떤 마지막 행 (또는 마지막 열) 식별을 도청하고 마지막 행 찾는 최종 게시물에 @SiddharthRout에 의해 기술 된 기술 사용하여 리팩토링한다 : 간단히 말해서 ... Error in finding last used cell in VBA을 :

는 열

With Sheets("Sheet1") 
    LastRow = .Range("A" & .Rows.Count).End(xlUp).Row 
End With 

는 시트 (마지막 행을 찾습니다 (아래 Sheet1의 A 열에서 마지막 점령 행을 찾습니다)의 마지막 행을 찾습니다 아래 방지하기 위해 CountA를 사용 빈 Sheet1)

With Sheets("Sheet1") 
    If Application.WorksheetFunction.CountA(.Cells) <> 0 Then 
     lastrow = .Cells.Find(What:="*", _ 
         After:=.Range("A1"), _ 
         Lookat:=xlPart, _ 
         LookIn:=xlFormulas, _ 
         SearchOrder:=xlByRows, _ 
         SearchDirection:=xlPrevious, _ 
         MatchCase:=False).Row 
    Else 
     lastrow = 1 
    End If 
End With 
+1

+1,하지만 올바른, 유연한 구문을 언급하지? –

+0

+1 이것은 마지막 열을 가져와야 할 때 유용 할 것입니다. – clintgh

+0

당신은 @DougGlancy가 맞습니다. 링크 된 게시물의 하이라이트를 위의 답변에 추가했습니다. –