2016-08-23 9 views
1

VBAを初めて使用しています。私はインテリセンスに問題がありますが、私はここで何の答えも見つけられませんでした。人々が私とは異なる問題を抱えているようです。VBA IntelliSenseは最初の期間の後にのみ表示され、最初の入力後はレベルなし

I型たび: ファイルパス= ActiveWorkbook.ActiveSheet.Cells(5、6).Valueの

それはこれが有効なコマンドですworks--が、私は学ぶことを試みていると私がしなければ:

Filepath = ActiveWorkbook。

その後、インテリセンスが表示され、ActiveSheetが表示されます。しかし、私は別のものを置く場合。アクティブシートの後に他のオプションが表示されず、セルがオプションとして表示されないことを意味します。だから、最初のIntellisenseの後には他のメソッドやプロパティがないようです。

しかし、私のような何かをした場合:てMySheet = ActiveWorkbook.ActiveSheet

ワークシート

セットとして

薄暗いてMySheetをして、私はてMySheetを行います。インテリセンスはそのために現れ、 "細胞"と他の選択肢を示しますが、その下のレベルは表示しません。どんな助けもありがとう。

+0

アクティブシートはグラフになる可能性があるからです。これをワークシートとして宣言することで、Intellisenseはより多くの情報を扱うことができます。 –

答えて

4

ActiveSheetは、Worksheetではなく、実際にはObjectです(VBEのオブジェクトエクスプローラでF2を確認してください)。だからIntellisenseはそれがWorksheetであることを知らず、どのメンバーがそれを持っているのか分からない。変数をWorksheetの変数に明示的に設定すると、変数の型が分かり、それを使用して関連するメンバーを特定できます。

Object Explorer

Chart

ActiveSheetオブジェクトは、独自のシートをも有することができ、Chartシートが現在アクティブ化されている場合、それはActiveSheetの値となるためObjectあります。これは、Workbook.WorksheetsWorkbook.Sheetsの両方が存在する同じ理由です。前者はWorksheetオブジェクトのみですが、後者はChartオブジェクトも含むことができます。その結果、Sheets(1)Objectを返します。したがって、ActiveWorkbook.Sheets(1).と入力するとIntellisenseがトリガーされません。

関連する問題