范围类的PasteSpecial方法在Function中失败

我一直在四处搜寻我的问题,但仍然找不到解决scheme。 我的目标是我想复制工作簿A的范围并将其粘贴到工作簿B.在我的代码下面:

Function fillDistributor(ByVal kodis As String) Dim wbThis As Workbook Dim wbTarget As Workbook Dim fileName As String Set wbThis = Workbooks.Open(fileName:="D:\Work\Master Data\Testing JMC\" & kodis & "\" & kodis & " Manual Template.xlsx") wbThis.Sheets("Distributor").Activate Range("B13:S14").Select Selection.Copy Set wbTarget = Workbooks.Open(fileName:="D:\Work\Master Data\Testing JMC\" & kodis & "\" & kodis & "-Distributor.xlsx") wbTarget.Sheets("Sheet1").Activate Range("A1:R2").Select Selection.PasteSpecial Paste:=xlPasteAll End Function 

错误是

范围class的Pastespecial方法失败。

任何帮助,将不胜感激!

你正在写这个函数。 它需要是一个子。 函数旨在将值返回给调用进程。 Subs旨在对工作簿/工作表中的范围或variables执行操作。

 Sub fillDistributor(kodis As String) Dim wbThis As Workbook, wbTarget As Workbook 'Dim fileName As String '<- what is this used for? Set wbThis = Workbooks.Open(fileName:="D:\Work\Master Data\Testing JMC\" & kodis & "\" & kodis & " Manual Template.xlsx") Set wbTarget = Workbooks.Open(fileName:="D:\Work\Master Data\Testing JMC\" & kodis & "\" & kodis & "-Distributor.xlsx") wbThis.Sheets("Distributor").Range("B13:S14").Copy _ Destination:=wbTarget.Sheets("Sheet1").Range("A1") wbThis.Close wbTarget.Close End Sub 

一个sub可以接受传入的参数。