2013-12-11 2 views
1

Excel에서 현재 선택된 셀의 오프셋을 (1,1) (으)로 선택하는 함수를 만들려고합니다. 내가 의도 한대로 기능이 작동하지 않는 이유를 작동하지 않을 수 있습니다 - Visual Basic Excel 함수 - 범위 오프셋 오류

Sub RangeOffset() 
    Range(ActiveCell).Offset(RowOffSet:=1, ColumnOffset:=1).Select 
End Sub 

나는 단지 "400"을 표시하는 창을 얻을 기능을 실행

는 다음과 같이

내 서브 루틴이다. ActiveCell 대신에 "A1"이라는 말을 넣으면 함수가 완벽하게 작동합니다 - 이유가 무엇입니까?

답변

4

Application.ActiveCell 속성은 문자열 리터럴이 아닌 Range 개체입니다. 리터럴 문자열을 반환하기 위해 Address 속성을 호출하는 대신

ActiveCell.Offset(1, 1) 

을 또는 :

당신은 같은 직접 사용할 수 있습니다.

Range(ActiveCell.Address).Offset(1,1) 

주소를 저장하면 기능이 완료되면 사용자의 활성 셀을 재설정 할 수 있지만 후자의 기술은 분명히 낭비입니다.