2016-06-13 39 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 
相关问题