2016-05-02 5 views
0

を無効に使用して別のワークブックにコピー「エラー438、オブジェクトはこのプロパティまたはメソッドをサポートしていません」VBAエラー438:メッセージ、</p> <pre><code> Private Sub Workbook_Deactivate() ThisWorkbook.ActiveSheet.RangeSelection.Copy End Sub </code></pre> <p>しかし、私はそれを実行しようとすると:私は以下のように、別のワークブックからいくつかのデータをコピーするために単純なコードを持っている

これを変更すると、正常に機能しました。誰かがなぜ私を説明することができましたか?

Private Sub Workbook_Deactivate() 
     ThisWorkbook.Windows(1).RangeSelection.Copy 
    End Sub 

ありがとうございます!

答えて

0

RangeSelectionはシートオブジェクトからではなく、Windowオブジェクトからのプロパティであるためです。
シートには、選択した範囲をコピーするためのプロパティがありません。
あなたは、アクティブシートで選択した範囲をコピーするには

Selection.Copy 

を使用することができます。 または既に持っているものを使用してください。

+0

ThisWorkbook.ActiveSheet.Selection.Copyを使用しましたが、同じエラーメッセージが表示されました。つまり、選択はActiveSheetのプロパティではありませんか?私はSelection.copyだけを試みましたが、コードは2番目のワークブックのコピーを作成しました(そして、私は最初のコピーを作りたがっていました)。 – netuno26

+0

はい、私はactivesheetにこのようなプロパティがないと言っていますので、あらかじめThisWorkbook.Activesheet.UsedRange.Selectで範囲を選択することができます。 –

+0

またはws1.Range(ws1.UsedRange.Address).Copyを使用できます.WS1は最初のワークシートです –

関連する問題

 関連する問題