2017-01-25 51 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

你想在什麼行復制? –

+1

什麼是Set Y = Workbooks.Open(「insert filepath」)'在做什麼?你有一個名爲「插入文件路徑」的工作簿?什麼是錯誤描述? – user3598756

+0

我想要整個列。我需要將代碼調整爲A:A嗎?我刪除了帖子的文件路徑。該文件可以毫不費力地打開。問題是當試圖在兩個文件之間移動數據時。它提示在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