2014-12-17 2 views
3

VBA에 새로운 기능이 있습니다. Excel 2010의 편집기에는 Ctrl + Space를 눌러 자동 완성 기능을 사용할 수 있습니다.Excel 2010의 자동 완성 VBA 편집기

하지만 때로는 작동하지 않습니다. 예를 들어 "ActiveSheet"를 입력 할 때가 있습니다. 나는 ..

을 가능한 방법과 오브젝트가이 변수를 검사 할 수 없습니다하지만 난에 입력 할 때 :

Set sheet = Workbooks.Open(file, True, True) 
sheet. 

을하고 CTRL + 스페이스를 누르 나는 모든 가능성을 볼 수 있습니다 ..에 대한

감사합니다 당신의 도움!

+0

보십시오 [여기.] (http://stackoverflow.com/questions/25796920/vba-excel-what-methods-attributes-can--with-with-activesheet) – TheEngineer

+0

http : //www.pcreview .co.uk/forums/why-no-intellisense-activesheet-t4031852.html – chancea

+0

컴퓨터가 ActiveSheet의 종류가 실제로 무엇인지 모르기 때문에 자동 완성 기능이 없다는 것이 맞습니까? – mrbela

답변

3

VBA는 데이터 형식에 모호성이 없을 때만 속성과 메서드를 제공합니다. ActiveSheet는 워크 시트 개체, Macrosheet 및 아마도 내가 기억하지 못하는 몇 가지 다른 것들이 될 수 있습니다.

개체 브라우저 (F2)로 이동하여 ActiveSheet 또는 Sheets 클래스의 Item 속성을 조회하면 Object 데이터 형식을 반환합니다. Object는 임의의 객체 (Variant와 같은 종류)를 보유 할 수있는 일반적인 데이터 유형입니다. VBA는 개체 뒤에 어떤 개체가 있는지 알지 못하므로 속성 및 메서드 목록을 제공 할 수 없습니다.

Set sheet = ...을 사용하여 해당 목록을 얻지 못하면 이전에 코드에서 sheet을 (아마도) 워크 시트로 선언했기 때문에 이해할 수 있습니다. Sheet.Item (및 Activesheet)이 Object를 반환하는 동안 Worksheet로 무언가를 선언 할 때 모호성이 없습니다.

+0

대단히 감사합니다! – mrbela

관련 문제