2016-06-03 3 views
0

VBA에 다음 함수를 사용하여 시트 이름을 검색하고 임시 저장하려고합니다.개체 필요 오류 424

Function MySheet() 

    MySheet = Application.Caller.Worksheet.Name 

End Function 

그러나 객체가
MySheet = Application.Caller.Worksheet.Name을 강조
필요 반환 유지합니다.

도와주세요.

답변

0

희미한 워크 시트 세트 WS의 =이

다음 그것을 해결하지 않았다 ws.name

0

워크 시트 .Name property을 검색하려면 먼저 이 Application.Caller이어야합니다.

Function MySheet() 

    MySheet = Application.Caller.Parent.Name 

End Function 

이는 사용자가 워크 시트에서 이것을 UDF¹ 워크 시트 기능으로 사용하고 있음을 전제로합니다.


는 사용자 정의 함수 (일명 UDF)가 표준 모듈 코드 시트에 배치됩니다 ¹. Alt 키 + F11 탭 및 VBE 열리면 즉시 삽입 ► 모듈 (Alt 키 + I, M ) 풀다운 메뉴를 사용한다. 기능 코드를 Book1-Module1 (코드)과 같은 새로운 모듈 코드 시트에 붙여 넣습니다. 워크 시트로 돌아 오려면 Alt + Q을 누르십시오.

+0

에서 이름을 얻으려고 activeworksheet로 WS, 동일한 오류, 같은 장소 슬프게도 –

+0

Application.Caller 것 UDF 함수가있는 셀이어야합니다. 워크 시트 셀의 Parent가 워크 시트이고 해당 이름을 가져올 수 있습니다. VBA 모듈 하위 또는 somesuch 내에서이 호출하려고하면 워크 시트 셀 함수를 호출하는 때문에 Application.Caller 결정하는 더 나은 방법이 필요합니다. – Jeeped

+0

그럼 어떻게하면 더 좋은 방법을 찾을 수 있을까요? VBA에 매우 익숙하지 않고 매우 혼란 스럽습니다. –

관련 문제