繁体   English   中英

如何将所有列数据从一个Excel复制到另一个Excel工作表

[英]How to copy all column data from one excel to another excel sheet

我正在尝试将一个Excel的列范围A:AU中的所有列数据复制到我在其中编写代码的A:AU相同范围中的另一个Excel。

两种excel都放在我的计算机中的不同位置,并且我已在要粘贴数据的excel中而不是从复制数据的excel中编写了我的vba代码。

我从中复制数据的excel的名称是“ EXRData_08.01.2018.xlsx” ,工作表名称是“ EXR_extract_EX”

&excel的名称,我要粘贴数据的位置以及我已编写vba代码的位置的名称为 UnattendedData.xlsm” ,工作表名称为“ RawData”

我正在尝试从第一个excel复制范围A:AU的整个列内容,并将其粘贴到存在代码的另一个excel中的A:AU的相同范围中 ,但是我遇到了错误并且它没有运行。 对此,请帮我。

以下是我的代码-

Sub panos()
  Dim r1 As Range, r2 As Range, N As Long

  Workbooks.Open "\01_Tool\Data\EXRData_08.01.2018.xlsx"
  N = Sheets("EXR_extract_EX").Cells(Rows.Count, "A:AU").End(xlUp).Row
  Set r1 = Sheets("EXR_extract_EX").Range("A:AU" & N)

  Workbooks.Open "_Master\Saurabh\UnattendedData.xlsm"
  Set r2 = Sheets("RawData").Range("A:AU")

  r1.Copy r2
End Sub
  1. 您无需打开UnattendedData.xlsm 如果这是工作簿,则您从中运行的代码已经打开。
  2. 请使用Workbooks.Open的完整路径。否则请打开。
  3. 尽可能使用Worksheets代替工作Sheets Sheets还包含图表等。
  4. 如果您使用WorksheetsWorksheets Sheets始终指定工作簿,如wb.Worksheets(…) 否则,Excel会猜测工作簿,并且可能会失败。

您的代码中的实际问题是Range("A:AU" & N)不是有效范围。 例如,对于N=15这将导致"A:AU15"无效。 它应该是"A15:AU15""A:AU"

我怀疑如果该列的其余部分仍然为空,那么使用一个或另一个会在性能上有很大的优势,因此我只复制整个列。


例:

Option Explicit 'make sure all variables have to be declared correctly

Public Sub CopyRanges()
    Dim wb As Workbook
    Set wb = Workbooks.Open("C:\YOUR_FULL_PATH_HERE\01_Tool\Data\EXRData_08.01.2018.xlsx")

    Dim shtSource As Worksheet
    Set shtSource = wb.Worksheets("EXR_extract_EX")
                   '^-- Always specify a wb for a sheet

    Dim shtDestination As Worksheet
    Set shtDestination = ThisWorkbook.Worksheets("RawData")
                         '^-- here we specify the workbook we are running  the code in
    'copy the ranges
    shtSource.Range("A:AU").Copy shtDestination.Range("A:AU")

    wb.Close SaveChanges:=False 'don't forget to close the workbook
End Sub

请注意,如果您需要相对于ThisWorkbook路径的路径,则可以使用类似

ThisWorkbook.Path & "\01_Tool\Data\EXRData_08.01.2018.xlsx"

如果它在相同的基本路径中,但是在不同的子文件夹中,则可以使用\\..\\向后走,以退出子文件夹,例如

ThisWorkbook.Path & "\..\..\01_Tool\Data\EXRData_08.01.2018.xlsx"

暂无
暂无

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

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