首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Excel 2013 VBA中的粘贴错误

Excel 2013 VBA中的粘贴错误
EN

Stack Overflow用户
提问于 2014-01-10 12:08:48
回答 2查看 1.3K关注 0票数 0

我有一个VBA脚本,它结合了一堆Excel文件中的数据,并整洁地显示了结果。它通过打开一个输入文件,复制所需的数据范围,并将其粘贴到结果文件中,来实现这一点。

我们刚刚升级到Office 2013,其中一些粘贴到了错误的位置,例如:

代码语言:javascript
复制
  Workbooks(currentBook).Sheets("InputList").Range("E1:F1000").Copy
  ThisWorkbook.Sheets("Results").Range("B2").PasteSpecial Paste:=xlPasteValuesAndNumberFormats

不是粘贴到单元格B2,而是粘贴到J1。

另一个复制粘贴操作,它应该提供:

代码语言:javascript
复制
Location    Date    Value
Location    Date    Value
Location    Date    Value

通过执行以下代码:

代码语言:javascript
复制
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

相反,其结果是:

代码语言:javascript
复制
Location    Location   Value
Location    Location   Value
Blank       Blank      Value

我真的很感谢任何帮助理解和处理这种行为-我需要能够相信这个文件的结果,在Office 2010我可以!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-13 17:22:40

可以通过循环遍历所需的范围来纠正此问题,将每个目标单元格的值指定为等于源单元格的值,如下所示:

代码语言:javascript
复制
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

虽然这纠正了复制和粘贴功能所遇到的问题,但它并不解释错误的来源,因此我仍然感兴趣于与此相关的任何答案。

票数 0
EN

Stack Overflow用户

发布于 2014-01-10 12:42:07

取代:

代码语言:javascript
复制
ThisWorkbook.Sheets("Results").Cells("B2").PasteSpecial Paste:=xlPasteValuesAndNumberFormats

使用

代码语言:javascript
复制
ThisWorkbook.Sheets("Results").Range("B2").PasteSpecial Paste:=xlPasteValuesAndNumberFormats

等。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21044016

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档