【问题标题】:I'm trying to copy a range of data from one worksheet to another我正在尝试将一系列数据从一个工作表复制到另一个工作表
【发布时间】:2014-09-29 19:32:11
【问题描述】:

当我尝试将工作簿 1 的工作表 1 复制到工作簿 2 的工作表 2 时,除了复制选择框外,工作簿 2 上没有显示任何内容。如果我注释掉 Activeworkbook.Close。 workbook1 已打开,并且工作表也已打开。但不仅不是复制,而且当我按下控制粘贴时,它实际上将 sheet2 粘贴到自身。所以我尝试了 Range(cells(2,1), Cells(lastrow,lastcolumn)).Select 而不关闭我要复制的工作簿以验证它是否至少会选择所需的范围,但它返回一个运行时错误'1004 ' .如果有人看到我的错误在哪里,请帮忙。谢谢

Dim directory As String, FileName As String
Dim lastrow As Long, lastcolumn As Long
Dim erow As Long

Application.ScreenUpdating = False
'Application.DisplayAlerts = False

directory = "C:\Users\Documents\file1\"
FileName = Dir(directory & "*.xl??")

'Open the Excel file
Workbooks.Open (directory & FileName)

'Select the worksheet and range of the worksheet to be copied
Worksheets("Luminaire Summary").Select
lastrow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
lastcolumn = ActiveSheet.Cells(1, Columns.Count).End(xlToLeft).Column
Range(Cells(2, 1), Cells(lastrow, lastcolumn)).Copy
'ActiveWorkbook.Close
erow = Sheet7.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
ActiveSheet.Paste Destination:=Worksheets("Sheet2").Range(Cells(2, 1), Cells(lastrow, lastcolumn))

经过一些建议后,我尝试编写更短的代码,但我仍然没有从 workbook1 sheet1 到 workbook2 sheet2 获得任何复制信息。这是我最后一次没有成功的尝试

Private Sub CommandButton1_Click()
Dim directory As String, FileName As String, total As Integer
Dim lastrow As Long, lastcolumn As Long  
directory = "C:\Users\Documents\"
FileName = Dir(directory & "*.xl??")       
Workbooks.Open (directory & FileName)    
Worksheets("Luminaire Summary").Select
UsedRange.Copy
ActiveWorkbook.Close
Sheets("Sheet2").Range("A1").PasteSpecial

【问题讨论】:

  • 我的意思是 Range(cells(2,1), Cells(lastrow,lastcolumn)).Select

标签: vba excel copy excel-2013


【解决方案1】:

您可以使用 UsedRange 进行简化

Worksheets("Luminaire Summary").Select
UsedRange.Copy
Sheets("Sheet2").Range("A1").PasteSpecial <-- 'or however you're determiing which cell to paste to

【讨论】:

  • 非常感谢您抽出宝贵时间回复。我将代码替换为您的代码只是为了查看输出,但它给了我一个由最后一行 Sheets("Sheet2").Range("A1").PasteSpecial 引起的运行时错误'9'
  • 另外一件事是我无法打开新工作簿并选择 UsedRange 空间,这让我有点担心。原因很简单,如果它不选择 UsedRange 是否也能复制它?
猜你喜欢
  • 1970-01-01
  • 2018-07-22
  • 1970-01-01
  • 1970-01-01
  • 2022-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多