2014-01-08 58 views
1

我試圖將數據從一個Excel工作簿複製到另一個。將數據從一個Excel複製/粘貼到另一個 - Dropbox/Combobox錯誤

我們對導入文件的模板進行了更改,因此它毀壞了舊的導入文件。所以有一些文件仍然需要導入,但它們在舊模板下。

我的問題源於我試圖複製數據時(粘貼特殊值,任何嘗試過的東西),它有時會給我一個錯誤:「您要更改的單元格或圖表受到保護,因此是隻讀的」。

但是,情況並非如此。我已經確定,當我將空白單元格粘貼到具有下拉列表的「是」或「否」的新字段時,會出現此錯誤。但是,如果手動移動到該單元格並將其留空(按回車鍵+輸入) ,它沒有問題。

我試過編碼,所以它複製/粘貼的每一行從工作簿到工作簿,但我的問題仍然存在,這些單元需要一個下拉式答案。我在想這些單元需要被編碼,以便實際上被「鍵入」而不是粘貼。它不能成爲粘貼實際範圍的一部分。

有沒有人有如何最好地解決這個問題的想法?以下是我目前的代碼,它是基於範圍進行復制的。這是非常sl as的,因爲我能想到的唯一方法就是不斷從工作簿切換到工作簿。任何幫助是極大的讚賞。

此外,我不是100%如何計算LastRow?所以我只是手動輸入。

Sub MoveText() 


For Row = 5 To 962 


Workbooks("Data.xls").Activate 
ActiveSheet.Range(Cells(Row, 1), Cells(Row, 3)).Select 
Selection.Copy 

Workbooks("blankTemplate.xls").Activate 

ActiveSheet.Range(Cells((Row + 1), 1), Cells((Row + 1), 3)).Select 
Selection.PasteSpecial Paste:=xlPasteValues 

Workbooks("data.xls").Activate 
ActiveSheet.Range(Cells(Row, 5), Cells(Row, 29)).Select 'this will select the contents of the active row 

Workbooks("blankTemplate.xls").Activate 

ActiveSheet.Range(Cells((Row + 1), 5), Cells((Row + 1), 29)).Select 
Selection.PasteSpecial Paste:=xlPasteValues 


Next 
+0

這看起來並不像 「視覺工作室」。 –

+0

我在Visual Studio中編寫VBA ...?編輯刪除標籤,如果不正確,對不起! – user2296381

回答

1
Sub MoveText() 

    Dim shtData As Worksheet, shtTempl As Worksheet 
    Dim Row As Long 

    Set shtData = Workbooks("Data.xls").Sheets("Data") 'or e.g. .Sheets(1) 
    Set shtTempl = Workbooks("blankTemplate.xls").Sheets("Data") 

    For Row = 5 To 962 

     shtTempl.Cells(Row + 1, 1).Resize(1, 3).Value = _ 
         shtData.Cells(Row, 1).Resize(1, 3).Value 

     shtTempl.Cells(Row + 1, 5).Resize(1, 25).Value = _ 
         shtData.Cells(Row, 5).Resize(1, 25).Value 

    Next Row 

End Sub 
+0

無法調整我們正在粘貼的字段的大小= /這是一個我們不能混淆的特定模板。 – user2296381

+0

你試過了嗎?我認爲你誤解了'Resize'在這裏做什麼... –

相關問題