将单元格复制并粘贴到另一个工作簿中 - 424错误

时间:2014-02-04 18:55:03

标签: excel-vba copy paste vba excel

我正在尝试运行一个吐出数据的程序。在过程结束时,我想将该数据复制到另一个工作簿中。我已经设置并且工作到它将数据复制并粘贴到另一个工作簿中但我在过去的步骤中得到424错误。代码如下。

sheet = Range("BL1") 
Range("BJ3:BM12").Copy 

Set wbk = Workbooks.Open("c:location")

x = 1
While wbk.Worksheets(sheet).Range("I" & x) <> ""
    x = x + 1
Wend
wbk.Sheets(sheet).Range("I" & x).PasteSpecial.Value   - Problem arises here

Application.CutCopyMode = False
ActiveWorkbook.Save
Call wbk.Close(False)

2 个答案:

答案 0 :(得分:0)

更改

wbk.Sheets(sheet).Range("I" & x).PasteSpecial.Value

wbk.Sheets(sheet).Range("I" & x).PasteSpecial xlPasteValues

答案 1 :(得分:0)

当您尝试从不是活动工作簿的工作簿进行粘贴时,会出现问题。你会认为你要粘贴的工作簿应该被激活,但你不能错。我知道,这没有意义。 ;)

Sub a()

Sheet = "sheet1" 'Range("BL1")  'changed this for the sake of simplicity

Set cwb = Application.ActiveWorkbook
Set wbk = Workbooks.Open("e:\b.xls")

x = 1
While wbk.Worksheets(Sheet).Range("I" & x) <> ""
    x = x + 1
Wend
Set PasteStart = wbk.Worksheets(Sheet).Range("I" & x) 
cwb.Activate  'Activate the workbook you want to copy data from
With Range("BJ3:BM12")
   .Copy  
   .PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
   .Copy PasteStart
End With

Application.CutCopyMode = False
wbk.Activate
ActiveWorkbook.Save
Call wbk.Close(False)
End Sub

请注意,此代码将值粘贴到原始工作簿以实现粘贴值效果,因此您可能希望添加一些代码以关闭原始工作簿而不保存。