Selection.ShapeRange의 각 셰이프 개체의 .TopLeftCell 속성을 가져오고 싶지만 다음 코드를 실행할 때 '이 개체가이 속성 또는 메서드를 지원하지 않습니다.'라는 런타임 오류 438이 발생했습니다.Excel VBA TopLeftCell 속성
Sub testTopLeftCell()
For Each target In Selection.ShapeRange
MsgBox target.TopLeftCell.Address
Next
End Sub
그러나 다음 코드는 작동합니다.
Sub testTopLeftCell2()
For Each target In Selection.ShapeRange
MsgBox ActiveSheet.Shapes(target.Name).TopLeftCell.Address
Next
End Sub
누구나 저에게 가르 칠 수 있습니까? 첫 번째 코드의 문제점은 무엇이고 두 번째 코드는 왜 작동합니까? 나는이 문제와 정말로 혼동을 느낀다.
모양 (예 : 하나 이상의 사각형, 그림, 타원 ...)이 '선택'에 있습니다. 두 번째 코드가 작동한다고 확신하지만 모양 선택 후 코드를 실행하면 첫 번째 코드가 작동하지 않습니다. [다른 웹 사이트] (http://www.mrexcel.com/forum/excel-questions/432495-vbulletin-macro-problem-using-topleftcell.html#)에도 비슷한 질문이 있지만 완전히 대답하지는 않았습니다. 정보 만 있으면 현재 환경이 MS Excel 2007입니다. 어쨌든 감사드립니다. – kwiqry
어쩌면 옵션을 명시 적으로 사용하고 대상을 선언하십시오. Dim target as shape –