2013-07-01 2 views

答えて

22

非アクティブなブックでシートを選択することはできません。

最初にブックをアクティブにしてから、シートを選択する必要があります。

workbooks("A").activate 
workbooks("A").worksheets("B").select 

アクティブ化を使用すると、ブックが自動的にアクティブになります。

注ワークブックに> 1枚を選択することができます。

activeworkbook.sheets(array("sheet1","sheet3")).select

つだけシートがアクティブにすることができ、あなたはそれらの複数シートの選択の一部ではないシートをアクティブにした場合他のシートは選択されなくなります。

+0

ありがとうございます!私はどこかから読んだことを覚えています。セレクトは使用することをお勧めしません、あなたはなぜそのことを知っていますか? – user2495069

+1

このアドバイスは、通常、編集なしで生成されたマクロレコーダーの使用に由来します。通常、レコーダーは 'Range(" A1 ")のようなコードを生成します.Select'と' Selection.Copy'の間に 'Range(" A1 ").Copy'を行うのがはるかにクリーンです。あなたのコードが 'Select'を使用している場合(特に範囲に)、「間違った」シートがアクティブな場合にブレークして、マクロのロバスト性を損なう可能性があります。選択を避け、オブジェクト自体を直接操作するのは、より速く、脆弱ではありません。 –

+1

私は見る!どうもありがとう!もう1つ質問できますか?どのような状況では、現在のアクティベートシートがBで、次にシートAのセルのフォーマットや値を変更すると、アクティベートシートが変更されます。アクティブシートはsheetAになりますか? – user2495069

関連する問題