2014-01-10 146 views
0

我有一個VBA腳本,它結合了一堆Excel文件中的數據並整齊地呈現結果。 它通過打開一個輸入文件,複製所需的數據範圍並將其粘貼到結果文件中來反覆進行。在Excel 2013中粘貼錯誤VBA

我們只是升級到Office 2013,以及一些膏是要在錯誤的位置,例如:

Workbooks(currentBook).Sheets("InputList").Range("E1:F1000").Copy 
    ThisWorkbook.Sheets("Results").Range("B2").PasteSpecial Paste:=xlPasteValuesAndNumberFormats 

不粘貼到單元格B2而是J1。

Location Date Value 
Location Date Value 
Location Date Value 

通過執行以下代碼:

應該給另一個複製粘貼操作

Workbooks(currentBook).Sheets("Pay").Range("B1:B2").Copy 
ThisWorkbook.Sheets("Problem Sheets").Range("E1").PasteSpecial Paste:=xlPasteValuesAndNumberFormats 
ThisWorkbook.Sheets("Problem Sheets").Range("E1:E2").Copy 
ThisWorkbook.Sheets("Problem Sheets").Range("A" & problemCell).PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Transpose:=True 
ThisWorkbook.Sheets("Problem Sheets").Range("E1:E2").ClearContents 
problemCell = problemCell + 1 

是不是結束了:

Location Location Value 
Location Location Value 
Blank  Blank  Value 

我真的很感激任何幫助理解和處理這種行爲 - 我需要能夠相信結果s文件,在Office 2010中我可以!

回答

0

此問題可通過在需要的範圍循環,分配每個目的地小區的值等於要被校正原始單元格的值如下所示:

For copyCount = 1 To 1000 
    ThisWorkbook.Sheets("Pay").Cells(copyCount + 1, 2).Value = _ 
     Workbooks(currentBook).Sheets("Employee List").Cells(copyCount, 5).Value 
    ThisWorkbook.Sheets("Pay").Cells(copyCount + 1, 3).Value = _ 
     Workbooks(currentBook).Sheets("Employee List").Cells(copyCount, 6).Value 
    ThisWorkbook.Sheets("Pay").Cells(copyCount + 1, 1).Value = _ 
     Workbooks(currentBook).Sheets("Employee List").Cells(copyCount, 7).Value 
Next 

雖然這可以解決遇到的複製和粘貼功能問題,但它並不能解釋錯誤的起因,所以我仍然對任何與此有關的答案感興趣。

1

替換:

ThisWorkbook.Sheets("Results").Cells("B2").PasteSpecial Paste:=xlPasteValuesAndNumberFormats 

ThisWorkbook.Sheets("Results").Range("B2").PasteSpecial Paste:=xlPasteValuesAndNumberFormats 

+0

啊,不知道這是怎麼爬的。你對這個錯誤是正確的,但是這個改變後問題依然存在。 –