简体   繁体   English

工作簿之间的复制范围

[英]Copy range between workbooks

I am trying to copy a range of cells on a sheet in one workbook to the bottom of a sheet in another workbook. 我正在尝试将一个工作簿中工作表上的单元格区域复制到另一工作簿中工作表的底部。 I keep getting "Application-defined or object-defined error" on the copy line. 我在复制行上不断收到“应用程序定义的错误或对象定义的错误”。

Dim NewFileName As String
Dim BAHFileName As String

NewFileName = "Filename"
BAHFileName = "Other Filename"

LastRow = Sheets("All").UsedRange.Rows.Count
Workbooks(NewFileName).Sheets("All").Range(Cells(2, 1), Cells(LastRow, 15)).Copy

Windows(BAHFileName & ".xlsx").Activate
LastRow = Workbooks(BAHFileName).Sheets(1).UsedRange.Rows.Count + 1
Workbooks(BAHFileName).Sheets(1).Cells(LastRow, 1).Select
ActiveSheet.Paste
Application.CutCopyMode = False

I needed to select the sheet before copying. 复制之前,我需要选择工作表。

Dim NewFileName As String
Dim BAHFileName As String

NewFileName = "Filename"
BAHFileName = "Other Filename"

LastRow = Sheets("All").UsedRange.Rows.Count
Sheets("All").Select
Workbooks(NewFileName).Sheets("All").Range(Cells(2, 1), Cells(LastRow, 15)).Copy

Windows(BAHFileName & ".xlsx").Activate
LastRow = Workbooks(BAHFileName).Sheets(1).UsedRange.Rows.Count + 1
Workbooks(BAHFileName).Sheets(1).Cells(LastRow, 1).Select
ActiveSheet.Paste
Application.CutCopyMode = False

Talking to yourself? 和自己说话?

Practise with this code to avoid using selects. 练习使用此代码,以避免使用选择。

I am not sure of the situation of your workbooks, so you will have to adjust workbook names and sheet names accordingly. 我不确定您的工作簿的情况,因此您将不得不相应地调整工作簿名称和工作表名称。

Sub Button1_Click()
    Dim WB As Workbook
    Dim bk As Workbook
    Dim LastRow As Long
    Dim Lrow As Long
    Dim rng As Range
    Dim ws As Worksheet
    Dim sh As Worksheet

    Set WB = ThisWorkbook
    Set bk = Workbooks("MyWorkbook.xlsx")
    Set ws = WB.Sheets("All")
    Set sh = bk.Sheets(1)

    With ws
        LastRow = .UsedRange.Rows.Count
        Set rng = .Range(.Cells(2, 1), .Cells(LastRow, 15))
    End With

    With sh
        Lrow = .UsedRange.Rows.Count + 1
        rng.Copy .Cells(Lrow, 1)
    End With

End Sub

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM