将数据从一个Excel复制/粘贴到另一个 – Dropbox / Combobox错误

我正试图将数据从一个Excel工作簿复制到另一个。

我们对导入文件的模板进行了更改,从而毁坏了旧的导入文件。 所以有一些文件仍然需要导入,但是它们在旧模板下。

我的问题源于我试图复制数据(粘贴特殊值,任何尝试的东西)时,它有时会给我一个错误: “您要更改的单元格或图表受到保护,因此是只读的”。

但是,情况并非如此。 我已经确定,当我将一个空白单元格粘贴到具有下拉列表的Yes或No的新字段时,会出现此错误。但是,如果手动转到该单元格并将其留空(点击backspace + enter) ,没有问题。

我试过编码,所以从工作簿到工作簿一次复制/粘贴的每一行,但我的问题仍然是这些单元需要一个下拉式答案。 我在想,这些单元格需要被编码,而不是被粘贴,而是被“键入”。 它不能成为粘贴实际范围的一部分。

有没有人有如何最好地解决这个问题的想法? 下面是我目前的代码,它是基于范围(s)复制。 这是非常草率的,我唯一能想到的就是不断从工作簿切换到工作簿。 任何帮助是极大的赞赏。

另外,我不是100%如何计算LastRow? 所以我只是手动input。

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 

 Sub MoveText() Dim shtData As Worksheet, shtTempl As Worksheet Dim Row As Long Set shtData = Workbooks("Data.xls").Sheets("Data") 'or eg .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