2015-01-13 104 views
0

我有两个Excel表。 xlVlookupSheet是一个工作表名称,而xlShtCmdb是另一个用于复制列数据的工作表。运行时错误1004 Microsoft Excel无法将数据粘贴到excel vba

我收到以下错误: -

Runtime error 1004 Microsoft excel cannot paste the data- 

它是在下面for loop第二次迭代的到来。 addressCols是一个包含要复制的列名称的数组。

For index = UBound(addressCols) To 0 Step -1 
     xlVlookupSheet.Columns("A:A").Insert xlToLeft 
     xlShtCmdb.Columns(addressCols(index) & ":" & addressCols(index)).Copy 
     xlVlookupSheet.Activate 
     xlVlookupSheet.Select 
     xlVlookupSheet.Range("A1").Select 
     Selection.PasteSpecial Paste:=xlPasteValues 
    Next 
+0

随着在'addressCols'中正确分配了一个列字母数组,这段代码按预期运行。您可能在数组的* rank *中犯了错误,或者如果从工作表范围读取数组,则需要进行转置。我还建议将循环内的最后4行合并为'xlVlookupSheet.Range(“A1”)。PasteSpecial Paste:= xlPasteValues'。 – Jeeped

+0

我用上面的代码替换了最后四行,但同样的错误 – Amit

回答

0

问题是,我从那里复制那个Excel表单包含33767样式。它将不会从源复制到目的地,如果样式将超过3000.因此,我删除了样式并制作了简单的普通表单并且它工作正常。

您可以通过下面的代码获得活动工作簿样式的数量: -

activeworkbook.styles.count

欲了解更多信息,可以去下面的链接: -

http://www.think-cell.com/en/support/kb/0156.shtml