你需要一个 sub 而不是一个函数,因为你想做的不仅仅是返回一个简单的值。这是一个非常简单的子程序,您可以根据自己的需要进行调整:
Sub CopyBlock(Sourze As String, Deztination As String)
Dim FinalDestination As Workbook
ary1 = Split(Sourze, "|")
ary2 = Split(Deztination, "|")
Set FinalDestination = Workbooks.Open(ary2(0))
ThisWorkbook.Sheets(ary1(0)).Range(ary1(1)).Copy FinalDestination.Sheets(ary2(1)).Range(ary2(2))
FinalDestination.Save
FinalDestination.Close
End Sub
Sub MAIN()
Call CopyBlock("Sheet1|A1:B9", "C:\TestFolder\ABC.xls|NewName|C10")
End Sub
从检查测试子MAIN可以看出,CopyBlock有两个输入参数:
- 源工作表的工作表名称 | 源范围的地址
- 目标文件的文件规范 | 目标工作表的工作表名 | 目标范围的左上角。