2016-08-23 2 views
1

VBA를 처음 사용합니다. 나는 인텔리 센스에 문제가있다. 그러나 나는 여기에 대한 답을 찾지 못했다. 사람들과 다른 문제가있는 것처럼 보인다. VBA IntelliSense는 첫 번째 기간 이후에만 표시되며 첫 번째 입력 이후에는 표시되지 않습니다.

내가 입력 할 때마다 : FilePath를 = ActiveWorkbook.ActiveSheet.Cells (5, 6) .Value

가이 유효한 명령입니다 works--,하지만 난 내가 할 경우 배우려고 노력하고 있어요 :

Filepath = ActiveWorkbook.

그러면 IntelliSense가 나타나고 ActiveSheet가 나타납니다. 그런데 다른 것을 넣으면. 액티브 시트 다음에 다른 옵션이 나타나지 않으므로 셀이 옵션으로 표시되지 않습니다. 따라서 첫 번째 Intellisense 이후에 다른 메소드/속성이없는 것처럼 보입니다. 내가 좋아하는 뭔가를 수행하는 경우

그러나 : 다음 워크 시트

설정하여 MySheet = ActiveWorkbook.ActiveSheet

희미하여 MySheet을 나는하여 MySheet을한다. 인텔리 센스가 그걸 생각해 내게 "셀"과 다른 옵션을 보여줄 것이지만 그 아래 레벨은 아닙니다. 어떤 도움을 주시면 감사하겠습니다.

+0

액티브 시트가 차트 일 수 있기 때문입니다. 이것을 워크 시트로 선언하면 Intellisense에 더 많은 정보를 제공 할 수 있습니다. –

답변

4

ActiveSheet은 실제로 Object이 아니고 Worksheet이 아닙니다 (VBE에서 F2로 개체 탐색기 확인). 그래서 Intellisense는 이것이 Worksheet이라는 것을 모르고 어떤 멤버가 있는지 알지 못합니다. 변수를 명시 적으로 Worksheet 변수로 설정하면 변수의 유형을 알고 해당 변수를 사용하여 연관된 구성원을 결정할 수 있습니다. Chart 객체는 자신의 시트를 가질 수 있으며, Chart 시트가 현재 활성화 된 경우, 그것은 ActiveSheet의 값이 될 것이다 Object 때문에

Object Explorer

ActiveSheet이다. 이것은 Workbook.WorksheetsWorkbook.Sheets이 모두 존재하는 동일한 이유입니다. 이전은 Worksheet 객체이고, 후자는 Chart 객체도 포함 할 수 있습니다. 따라서 Sheets(1)Object을 반환하므로 ActiveWorkbook.Sheets(1).을 입력해도 Intellisense가 트리거되지 않습니다.

관련 문제