复制行和列表中的范围

时间:2013-10-27 12:51:14

标签: vba excel-2013

= copy_function名称(“单元格范围”,“单元格范围”,“单元格范围”,工作簿name_anddestinationcelladdress)

您好我是编程的新手我想要一个函数就像这样= copy_function name(“cell ranges”,工作簿name_andcelladdress),它会将上述单元格复制到所需的工作簿,并打开带有复制值的工作簿。

单元格范围也将是这样的假设我有来自(a1:j15)的表然后我只想要(“a1:a4”,“c1:e4”),因为观察到B列不需要被复制到工作手册。

1 个答案:

答案 0 :(得分:0)

你需要一个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 有两个输入参数:

  1. 源表的页面名称|源范围的地址
  2. 目标文件的filespec |目标工作表的工作表名称目的地范围的左上角。