15

Sheets.SelectVBA for Excel のとの違いは何Sheets.Activateですか?

4

3 に答える 3

29

違いは柔軟性にあります。

Activate指定されたシートをアクティブなシートにし、単一のシートにのみ適用できます

Selectオプションで、現在選択されているシートを拡張して、指定したシートを含めることができます。

Worksheets("Sheet2").Select Replace:=False

また、シートの配列を選択することもできます

Sheets(Array("Sheet3", "Sheet2")).Select

最小限の形式SelectActivate、同じことを行います。

たとえば、現在 1 つのシートのみが選択されているSheet3場合 (たとえば、 )、または複数のシートが選択されているが、sayを除外Sheet2している場合Worksheets("Sheet2").SelectWorksheets("Sheet2").Activate両方ともSheet2、唯一の選択されたアクティブなシートを作成します。

一方、 と の両方Sheet2Sheet3選択され、Sheet2がアクティブなシートである場合、Worksheets("Sheet3").Activate両方のシートが選択されたままになりSheet3、アクティブなシートが作成されWorksheets("Sheet2").SelectますがSheet3、唯一の選択されたアクティブなシートが作成されます。

于 2013-04-10T08:05:19.977 に答える
17

.activateワークシートタブをクリックしていますか?

.selectコントロールを実行してタブをクリックすることをシミュレートします。VBA では、まだシートにいません。

.select複数のシートを作成できますが、1.activateつのみです。

于 2013-04-10T07:59:23.247 に答える
1

上記を拡張するには: 以下のコードを Replace:=False で実行すると、sheet4 でワークシートの非アクティブ化イベントは発生しません。代わりに Replace:=True を使用すると、非アクティブ化イベントが発生します。

予期しない動作を引き起こす可能性があるため、ほとんどの状況ではイベントを防止することが望ましいです。

つまり、select は、Ctrl キーを押しながらワークシート タブをクリックすることと同等であり、replace:=false が使用されていることを意味します。

サブ

Dim rng As Range

Sheet4.Select Replace:=False
Set rng = Selection

Sheet5.Select Replace:=True
Selection = rng.Value

サブ終了

違いを理解するのに役立ったので、あなたの投稿に感謝します。

ハーベイ

于 2015-01-03T16:43:42.427 に答える