我一直在搜索我的问题,但仍无法找到解决方案。 我的目标是我想从工作簿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
错误是
范围类的Pastespecial方法失败。
任何帮助将不胜感激!
答案 0 :(得分:1)
您正在将此作为一种功能编写。它需要是一个子。函数旨在将值返回给调用进程。 Subs旨在对工作簿/工作表中的范围或变量执行操作。
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可以接受像函数一样传入的参数。