【发布时间】:2014-01-08 16:08:13
【问题描述】:
我正在尝试将数据从一个 Excel 工作簿复制到另一个。
我们对导入文件的模板进行了更改,因此破坏了旧的导入文件。所以还有一些文件还需要导入,但是在旧模板下。
我的问题源于当我尝试复制数据(粘贴特殊、值、尝试过的任何内容)时,它有时会给我一个错误:“您尝试更改的单元格或图表受到保护,因此读取-仅”。
但是,情况并非如此。我已经确定,当我将空白单元格粘贴到具有是或否下拉列表的新字段时,它会给出该错误。但是,如果我手动转到该单元格并给它一些空白(按退格键 + 回车键) ,没问题。
我尝试过编码,因此它一次将每一行从工作簿复制/粘贴到工作簿,但对于这些需要下拉答案的单元格,我的问题仍然存在。我认为这些单元格需要被编码为实际“输入”而不是粘贴。它不能作为粘贴实际范围的一部分。
有没有人知道如何最好地解决这个问题?下面是我当前的代码,它是根据范围进行复制的。这是非常草率的,因为我能想到的唯一方法就是不断地从工作簿切换到工作簿。非常感谢任何帮助。
另外,我不是 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
【问题讨论】:
-
这看起来不像“visual-studio”。
-
我在 Visual Studio 中编写 VBA ...?编辑删除标签,如果它不正确,对不起!