2016-06-13 38 views
-1

我試圖將數據從一個工作簿傳輸到另一個工作簿。工作簿A有48個不同數據的選項卡,我有48個Excel文件需要複製粘貼到特定列。標籤名稱和文件名稱是匹配的,這就是爲什麼我設置名稱範圍。我一直聽到open語句(集合y)將數據從一個工作簿複製到另一個(選項卡到工作簿)

的語法錯誤,並在ws1選擇範圍線處出現另一個錯誤。你能幫助我承受我做錯了什麼嗎?

Sub Transfer() 



Dim x As Workbook, y As Workbook 
Dim ws1 As Worksheet, ws2 As Worksheet 
Dim names As String 




Set x = ThisWorkbook 



For a = 2 To 49 
names = ThisWorkbook.Sheets(1).Range("A" & a).Text 

'獲得編譯錯誤:語句預計年底

set y = workbook.Open Filename:=Thisworkbook.Path & "/" & names & ".xlsx" 




Set ws1 = x.Sheets(names) 
Set ws2 = y.Sheets("Equipment") 

' 下面,然後得到運行時錯誤 '1004' 更新代碼:範圍類的複製方法失敗

ws1.Range("B2:B200").Copy ws2.Range("A3") 
ws1.Range("c2:c200").Copy ws2.Range("B3") 
ws1.Range("f2:f200").Copy ws2.Range("C3") 
ws1.Range("g2:g200").Copy ws2.Range("D3") 




    Next a 

    End Sub 



我感謝您的時間和建議。

+2

*我不斷收到錯誤*絕對是一個毫無意義的問題說明。你完全知道**你得到了什麼樣的錯誤,因爲它們正好在你面前的屏幕上。你絕對沒有理由**,因爲你沒有在你的問題中包含這些信息。你要求我們提供**免費幫助**來解決**你的問題** - 你應該提供你在你面前的信息,使我們更容易提供幫助。 –

+1

'Set y = Workbooks.Open' and'ws1.Range(「B2:B200」)。複製 ws2.Range(「A3」)'刪除'Paste'行 –

+0

Ken - 我的道歉。我在這裏是個神仙。感謝您的建議。 Tim - ws1.Range(「B2:B200」)。複製ws2.Range(「A3」)爲兩行工作,然後拋出其他類型的錯誤。 :-(感謝您看看它。 – MsRestlesstraeler

回答

0

因此,我更新了一些代碼,並使其工作。 :)

Sub Transfer() 

    Dim x As Workbook, y As Workbook 
    Dim ws1 As Worksheet, ws2 As Worksheet 
    Dim names As String 
    Dim lastrow As Integer 
    Dim a As Integer 


    Set x = ThisWorkbook 

    For a = 2 To 49 
    names = ThisWorkbook.Sheets(1).Range("A" & a).Text 
    Set y = Workbooks.Open("C:\Documents\Work\" & names & ".xlsx") 

    Set ws1 = x.Sheets(names) 
    Set ws2 = y.Sheets(2) 
    lastrow = ws1.Cells(Rows.Count, 6).End(xlUp).Row 
    ws1.Range("B2:B" & lastrow).Copy ws2.Range("A3") 
    ws1.Range("C2:C" & lastrow).Copy ws2.Range("B3") 

    ws1.Range("F2:F" & lastrow).Copy ws2.Range("C3") 
    ws1.Range("G2:G" & lastrow).Copy ws2.Range("D3") 
    ws1.Range("H2:H" & lastrow).Copy ws2.Range("E3") 
    ws1.Range("I2:I" & lastrow).Copy ws2.Range("F3") 
    ws1.Range("J2:J" & lastrow).Copy ws2.Range("G3") 
    ws1.Range("L2:L" & lastrow).Copy ws2.Range("H3") 
    ws1.Range("M2:M" & lastrow).Copy ws2.Range("I3") 
    ws1.Range("N2:N" & lastrow).Copy ws2.Range("J3") 
    ws1.Range("O2:O" & lastrow).Copy ws2.Range("K3") 

    y.Save 
    y.Close 


    Next a 
    End Sub 
相關問題