2014-11-20 61 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