2014-11-20 119 views
0

我的VBA代码被设置为从一张纸上复制一个值(注意每次打开纸张时这个值都会改变)并粘贴到下一个可用行的'数据库'中。ActiveSheet.Paste Failing VBA Excel

想想我说得对,但粘贴方法似乎失败了,谁能看到为什么?

Windows("Invoice Program.xlsm").Activate 
Range("B4").Select 
Application.CutCopyMode = False 
Selection.Copy 
Workbooks.Open ("C:\Users\Invoice Database.xlsx") 
Windows("Invoice Database.xlsx").Activate 
Range("A" & Rows.Count).End(xlUp).Offset(1).Select 
Selection.Paste 
+3

请参见[如何避免使用选择Excel VBA宏(http://stackoverflow.com/q/10714251/11683) – GSerg 2014-11-20 21:54:13

+0

你是什么意思“失败”吗?你有错误吗?价值不变? – Degustaf 2014-11-20 21:54:40

+0

对不起,我得到错误438,现在编辑使用选择 – 2014-11-20 22:03:45

回答

0
Dim varTemp as Variant 

Windows("Invoice Program.xlsm").Activate 
Range("B4").Select 
varTemp = ActiveCell.Value 
Workbooks.Open ("C:\Users\Invoice Database.xlsx") 
Windows("Invoice Database.xlsx").Activate 
Range("A" & Rows.Count).End(xlUp).Offset(1).Select 
ActiveCell = varTemp 
+0

嘿,欢呼的帮助,但ActiveSheet是我原来,我得到'粘贴方法的工作表类失败'错误1004 – 2014-11-20 22:54:22

+0

我用我的一些“虚拟”工作簿系统和代码运行良好。它是创建错误消息的最后一行代码吗? – 2014-11-20 23:01:41

+0

是的ActiveSheet.Paste是什么标记为错误 – 2014-11-20 23:07:47

0

使用ActiveSheet.Paste但在使用前的DoEvents行。

DoEvents 
ActiveSheet.Paste