2014-10-05 1 views
0

예를 들어 함수 호출을 위해 참조하려는 객체를 참조하는 With 블록 안에 있으면 객체를 이름으로 참조해야합니까, 아니면 사용할 수있는 "this", "me"ref입니까?VBA obj - 함께 obj를 참조하는 방법을 지정하지 않고?

나는 온라인으로 검색을했으나 VBA에서 검색을 많이하지 않았습니다.

Dim shExport As Worksheet 

With shExport 
    ....... 
    ....... 
    'works as expected 
    GetData(shExport) 

    'but how can this be achieved without naming it 
    GetData(this) 
    GetData(me) 
    GetData() 
    ........ 
End With 



    Function GetData(sh As Worksheet) As Integer 
    ..... 
    ..... 
    End Function 

답변

1

.Parent 속성을 지원하는 개체의 속성을 지정하여 개체에 대한 참조를 다시 가져올 수 있습니다. 예 :

With shExport 

    GetData(.Cells.Parent) 

End With 
+2

이것은 기술적으로 정답이지만 질문에는 해당되지 않습니다. 객체를 직접 참조하는 것보다 더 나은 선택이라고 생각합니다. – Degustaf

+0

물론 더 나은 것은 모든 변수 이름을 다시 입력 할 필요없이 코드를 다시 사용할 수 있음을 의미합니다. "shname"으로 시작하는 커다란 파일에서 시작 부분을 변경하는 것만으로도 충분히 이해할 수 있으며 Microsoft가 self obj를 추가 할 필요가 없으므로 다른 참조를 찾지 않습니다. –

+0

ills just refSelf or varSelf = .Cells . 부모님 그리고 다른 유지자들에게 명확함 –

0

가 직접 호출 이외의 객체를 참조 할 수있는 방법은 없습니다 (또한 본다 : How to access the object itself in With ... End With을).

당신이 할 수있는 것은 일반적으로 같은 워크 시트 모음 호출하는 것입니다 : 블록과 관련하여

ActiveWorkbook.Worksheets("Sheet1") 또는 ActiveWorkbook.Sheets(1)

을 - 당신은 개체의를 참조 그 안에 점 .을 사용할 수 있습니다 자식 요소/필드를 사용하지만 도트 .을 매개 변수로 보낼 수 없습니다.

+0

GetData (.)를 사용한다고 말하고 있습니까? 정말? –

+0

아니요, GetData 내부에서 작동하지 않습니다. – ilans

+0

나는 그 자식이 아닌,에 의해 참조되는 객체를 참조하려고합니다 –

관련 문제