【发布时间】: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