2016-02-02 80 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 
相關問題