首页 > 解决方案 > 如何将数据粘贴到另一个工作簿中?

问题描述

我的代码按我的意愿工作,但仅在工作工作簿中。

我想将数据传输到另一个工作簿,但如果我更改名称和路径,它就不起作用。

EG:在代码中

Worksheets("SHIPMENTS").Paste Destination:=Worksheets("SI").Cells(b + 1, 2)

我用过->

  Worksheets("SHIPMENTS").Paste 
  Destination:=Workbooks("Name").Worksheets("SheetName").Cells(b + 1, 2)"

它没有工作。

代码如下所示:

Private sub BTN
a = Worksheets("SHIPMENTS").Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To a
    'based by country
    If Worksheets("SHIPMENTS").Cells(i, 5).Value = "SI" Then

        'if already sent
        If Worksheets("SHIPMENTS").Cells(i, 9).Value = "YES" Then

            'sorting by color
            If Worksheets("SHIPMENTS").Cells(i, 5).Interior.Color = 16777215 Then

                'kopiranje (datuma)
                Worksheets("SHIPMENTS").Cells(i, 3).Copy

                'counting
                b = Worksheets("SI").Cells(Rows.Count, 1).End(xlUp).Row

                'paste 1
                Worksheets("SHIPMENTS").Paste Destination:=Worksheets("SI").Cells(b + 1, 1)


                'copy paste

                'country
                 Worksheets("SHIPMENTS").Cells(i, 5).Copy
                 Worksheets("SHIPMENTS").Paste Destination:=Worksheets("SI").Cells(b + 1, 2)

                'quty
                 Worksheets("SHIPMENTS").Cells(i, 10).Copy
                 Worksheets("SHIPMENTS").Paste Destination:=Worksheets("SI").Cells(b + 1, 3)

                'transfer note
                 Worksheets("SHIPMENTS").Cells(i, 6).Copy
                 Worksheets("SHIPMENTS").Paste Destination:=Worksheets("SI").Cells(b + 1, 4)

                'transfer number
                 Worksheets("SHIPMENTS").Cells(i, 8).Copy
                 Worksheets("SHIPMENTS").Paste Destination:=Worksheets("SI").Cells(b + 1, 5)

                'month
                 Worksheets("SHIPMENTS").Cells(i, 12).Copy
                 Worksheets("SHIPMENTS").Paste Destination:=Worksheets("SI").Cells(b + 1, 7)

                 'coloring
                 Worksheets("SHIPMENTS").Cells(i, 5).Interior.ColorIndex = 43

                 'to the first position
                 Worksheets("SHIPMENTS").Activate
            End If
        End If
    End If
Next
 MsgBox "Copied"
Application.CutCopyMode = True
ThisWorkbook.Worksheets("SHIPMENTS").Cells(1, 1).Select

End Sub

标签: excelvba

解决方案


像这样:

Worksheets("SHIPMENTS").Cells(i, 5).Copy Destination:=Worksheets("SI").Cells(b + 1, 2)

更好 - 声明一些工作表变量并使用它们来避免所有重复。


推荐阅读