8
誰もが、私は特定のシートを参照するとき、私は使用することができ、その理由を教えてもらえない:「workbooks.worksheets.activate」は動作しますが、「.select」ではない
workbooks("A").worksheets("B").activate
なく
workbooks("A").worksheets("B").select
?
誰もが、私は特定のシートを参照するとき、私は使用することができ、その理由を教えてもらえない:「workbooks.worksheets.activate」は動作しますが、「.select」ではない
workbooks("A").worksheets("B").activate
なく
workbooks("A").worksheets("B").select
?
非アクティブなブックでシートを選択することはできません。
最初にブックをアクティブにしてから、シートを選択する必要があります。
workbooks("A").activate
workbooks("A").worksheets("B").select
アクティブ化を使用すると、ブックが自動的にアクティブになります。
注ワークブックに> 1枚を選択することができます。
activeworkbook.sheets(array("sheet1","sheet3")).select
つだけシートがアクティブにすることができ、あなたはそれらの複数シートの選択の一部ではないシートをアクティブにした場合他のシートは選択されなくなります。
ありがとうございます!私はどこかから読んだことを覚えています。セレクトは使用することをお勧めしません、あなたはなぜそのことを知っていますか? – user2495069
このアドバイスは、通常、編集なしで生成されたマクロレコーダーの使用に由来します。通常、レコーダーは 'Range(" A1 ")のようなコードを生成します.Select'と' Selection.Copy'の間に 'Range(" A1 ").Copy'を行うのがはるかにクリーンです。あなたのコードが 'Select'を使用している場合(特に範囲に)、「間違った」シートがアクティブな場合にブレークして、マクロのロバスト性を損なう可能性があります。選択を避け、オブジェクト自体を直接操作するのは、より速く、脆弱ではありません。 –
私は見る!どうもありがとう!もう1つ質問できますか?どのような状況では、現在のアクティベートシートがBで、次にシートAのセルのフォーマットや値を変更すると、アクティベートシートが変更されます。アクティブシートはsheetAになりますか? – user2495069