2017-01-25 8 views
0

すべて、VBA - コードのコピー/貼り付け部にタイムアウトエラー

コードは、この部分X.Sheets("TEMP").Range("A").Copy Destination:=Y.Sheets("Text Template").Range("D3")で実施誤るれます。これがどのように解決できるかアドバイスできますか?私の目標は、アクティブシートを取得し、既存の保存されたブックにデータを移行することです。アクティブなブックは毎日異なるので、ファイルパスをルーティングすることは最もサポートしやすいオプションではありません。

アドバイスをいただければ幸いです。

Sub Datamove() 
    ' 
    Worksheets.Add().Name = "TEMP" 
    Sheets("MCI").Select 
    Cells.Select 
    Selection.Copy 
    Sheets("TEMP").Select 
    Sheets("TEMP").Paste 

    ActiveSheet.Range("$A$1:$AH$799").AutoFilter Field:=2, Criteria1:=Array(_ 
     "MC1A", "MC1B", "MC1C", "MC1D", "MC1E", "MC1F", "MC1G", "MC1H", "MC1J", "MC1K", "MC1L", _ 
     "MC1M", "MC1N", "MC1P", "MC1Q", "MC1R", "MC2A", "MC2B", "MC2C", "MC2D", "MC2E", "MC3A", _ 
     "MC3C"), Operator:=xlFilterValues 
    ActiveSheet.Range("$A$1:$AH$799").AutoFilter Field:=4, Criteria1:= _ 
     "Residential" 
    ActiveSheet.Range("$A$1:$AH$799").AutoFilter Field:=5, Criteria1:="=" 


Dim X As Workbook 
Dim Y As Workbook 

Set X = ActiveWorkbook 
Set Y = Workbooks.Open("insert filepath") 

X.Sheets("TEMP").Range("A").Copy Destination:=Y.Sheets("Text Template").Range("D3") 
X.Sheets("TEMP").Range("R").Copy Destination:=Y.Sheets("Text Template").Range("F3") 
X.Sheets("TEMP").Range("AU").Copy Destination:=Y.Sheets("Text Template").Range("B3") 


End Sub 
+1

コピーしたいんAで何行? –

+1

'Set Y = Workbooks.Open("ファイルパスを挿入 ")とは何ですか? "insert filepath"という名前のブックがありますか?エラーの説明は何ですか? – user3598756

+0

私は列全体が必要です。コードをA:Aに調整する必要がありますか?投稿のファイルパスを削除しました。ファイルは簡単に開きます。問題は、2つのファイル間でデータを移動しようとするときです。これは、X.Sheets( "Temp")部分でデバッグを要求します。 –

答えて

0

これらを試してみてください。

X.Sheets("TEMP").Range("A3").Copy Destination:=Y.Sheets("Text Template").Range("D3") 
X.Sheets("TEMP").Range("R3").Copy Destination:=Y.Sheets("Text Template").Range("F3") 
X.Sheets("TEMP").Range("AU3").Copy Destination:=Y.Sheets("Text Template").Range("B3") 

ここでは、範囲オブジェクトの詳細を読むことができます:あなたが列のみをコピーしたい場合は、 https://msdn.microsoft.com/en-us/library/office/ff838238.aspx?f=255&MSPPError=-2147217396

次のように使用します。

Columns("A:A").Copy 
0

Set Y = Workbooks.Open("insert filepath") までのコードをsmothlesslその後、Y、代替:

X.Sheets("TEMP").Range("A").Copy Destination:=Y.Sheets("Text Template").Range("D3") 
X.Sheets("TEMP").Range("R").Copy Destination:=Y.Sheets("Text Template").Range("F3") 
X.Sheets("TEMP").Range("AU").Copy Destination:=Y.Sheets("Text Template").Range("B3") 

と:

With X.Sheets("TEMP") 
    .Range("A1", .Cells(.Rows.Count, "A").End(xlUp)).Copy Destination:=Y.Sheets("Text Template").Range("D3") 
    .Range("R1", .Cells(.Rows.Count, "R").End(xlUp)).Copy Destination:=Y.Sheets("Text Template").Range("F3") 
    .Range("AU1", .Cells(.Rows.Count, "AU").End(xlUp)).Copy Destination:=Y.Sheets("Text Template").Range("B3") 
End With 
+0

Withステートメントでエラーを解決していただきありがとうございます。私はサポートに感謝します。 –

+0

ようこそ。あなたは受け入れられたとして回答をマークしたいかもしれません。ありがとうございました! – user3598756

関連する問題