2016-02-02 94 views
1

我想将工作簿中所有选项卡(工作表)中的列复制到Sheet1中的第一个空列。上周,我写了下面的宏:VBA:复制粘贴到一个工作表宏错误

Option Explicit 

Dim i As Integer 

Sub GICF_Confimit_CopyPaste_Sheet() 
    For i = 2 To 50 Step 1 
     Sheets(i).Activate 
     Range("C1").Select 
     Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select 
     Selection.Copy 
     Sheets("Sheet1").Activate 
     Range("A1").End(xlToRight).Offset(0, 1).Select 
     ActiveSheet.Paste 
    Next i 
End Sub 

这工作得很好,然后,但现在它抛出一个错误说,它不能粘贴,我应该选择一个单元格,然后单击粘贴或选择相同的形状尺寸。它有很多数据(每个标签有150多列),但上周这对我很有用,现在似乎已经破裂,尽管我没有改变任何东西。

任何人都可以提供帮助吗?

+0

我应该补充说,问题似乎是我的文件不会让我超过256列。我正在运行Excel 2010,将该文件保存为.xlsx,并且上周没有遇到此问题。 – enlsem2015

+0

您将该文件保存为.xlsx文件,但它是否起源于.xls?如果是这样,为了达到大小限制,您实际上无法将其“转换为”.xlsx。您将需要创建一个新的文件作为xlsx为了有增加的列限制16,384。 –

回答

0

错误消息非常清楚,复制范围与选定的粘贴不相同。所以我建议选择单元格并粘贴它。

Option Explicit 

Dim i As Integer 

Sub GICF_Confimit_CopyPaste_Sheet() 
For i = 2 To 50 Step 1 
    Sheets(i).Activate 
    Range("C1").Select 
    Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select 
    Selection.Copy 
    Sheets("Sheet1").Activate 
    Range("A1").Select 
    ActiveSheet.Paste 
Next i 
End Sub