2011-08-24 11 views

答えて

35

selectの違いは、複数のオブジェクトを同時に選択できることです。選択されたオブジェクトは、メソッドを使用できるSelectionオブジェクトにも配置されます。複数のオブジェクトを選択していない限り、(セルなどの)オブジェクトを選択すると、そのオブジェクトがアクティブになります。

アクティブにすると、単にオブジェクトをアクティブなオブジェクトにします。 これを考える最良の方法はです。 "多くのセルを選択できますが、いずれかの時点でアクティブセルになるのは1つだけです"

注:どちらも共通しています - ほとんど必要とされず、一般的には何もしませんが、コードを遅くします。オブジェクトを選択またはアクティブ化することなくオブジェクトに直接作業することができます。必要な場合を除き、オブジェクトを使用しないことをお勧めします。

+1

+1です。 –

+0

@アイスン+1ニースの回答 – niko

+1

+1最後のメモ。 – Zenadix

8

MSDN

からの説明はあなたが最初の例wb.Sheets(1).Cells.Selectであるあなたは、第二wb.Sheets(1).Activateは、シートがアクティブになり

複数のセルを選択することができます。

Excel VBAに役立つリソースはたくさんあります。

http://www.excel-vba.com/index.htm#Tutorial%20on%20Excel%20Macros

http://www.excel-vba-easy.com/

http://www.functionx.com/vbaexcel/

+0

wb.Sheets(1).Activateは、* sheet *をアクティブにします。アクティブなセルとそのシート上の選択は変更されず、そのシート上にアクティブなセルが存在しないことさえあります。 –

+0

私の悪い、私はミスタイプ、私はそれを修正しました。 – Taryn

6

最初ブックWBの最初のシート上のすべてのセルを選択します。シートがアクティブでない場合は失敗します。

2つ目は、ワークブックwbの最初のシートをアクティブにするだけです。そのシート上の選択またはアクティブセルは変更されず、場合によっては選択された範囲またはアクティブセルが存在しないこともあります(たとえば、現在選択されているシート上にオブジェクトがある場合など)。

+0

"選択を変更する" - > "選択を変更しない" +1 –

+0

@ J - F:ありがとう - "多くのセルを選択することができますが、いずれかの時点でアクティブなセルが1つだけかもしれない"のために私の答えは –

1

Select - 「選択」のセル(複数可)

Activateは -

は時々uがために、特にACTIVATEにシートを必要とする(種類のシートに集中するというような)シートを「アクティブ」 to make a SELECT

0

アクティブシートは、例のシートによく使用されます。 アクティブシートが画面に表示されます...アクティブシートが1つしかないことがあります

選択は複数のセルに使用できますが、 範囲(A1:B3)。選択すると複数のセルが選択できます。

1

検索中にこの質問が見つかりました。同じ質問がありました。

Sub Transfer(x As Long) 
    Dim Rng, ID as Range 
    Dim i, j, n As Long 

Worksheets(5).Activate 
n = Worksheets(5).Range(Range("I88"), Range("I88").End(xlToRight)).Count 

Worksheets(x).Select 
Set Rng = Worksheets(3).UsedRange.Find("Element", LookIn:=xlValues).Offset(1, 1) 
Set ElemID = Range(ElemRng.Offset(0, -1), ElemRng.Offset(0, -1).End(xlDown)) 
Set ElemRng = Worksheets(3).Range(ElemRng, ElemRng.End(xlToRight)) 
End Sub 

私は私ワークシートを入れてを持っていたことが分かった:ここで私が気づいたものです。アクティブ(または選択)またはコードはに実行します:


実行時エラー:「1004」 アプリケーション定義またはオブジェクト定義のエラー簡単なため


関連する問題