将一个Excel工作簿中的特定范围复制到另一个工作簿

时间:2014-04-24 21:13:16

标签: excel-vba vba excel

第一次发布海报,我已经查看了其他responese的问题,但我需要验证代码。所以我在下面有这个代码,我很确定它是正确的,但目的地范围不是清除内容。我想要做的是将活动工作簿中的Range(" A:G")中的数据复制到另一个工作簿中的Range(" A:G")。但我需要清除目标范围内的内容,因为我只需要目标范围内最新的源范围。评论的部分是我知道在目的地范围内清除内容后我将使用的代码。

 Sub CopytoRISKreport()

   Dim Dest_file_name As String
   Dim dest_wkbk As Workbook

   Dest_file_name = "Q:\Co Risk Report\3 Month RISK Report.xlsm"

   Set dest_wkbk = Workbooks.Open(Dest_file_name)
   Application.DisplayAlerts = False

   With dest_wkbk
   Sheets("CO_HOLDS Import").Range("A1:G" & .Rows.Count).ClearContents

   'Workbooks("Q:\Co Risk Report\CO Holds.xls").Select
   'Selection.Worksheets("CO_HOLDS Import").Range("A:G").Copy
   'dest_wkbk.Sheets("CO_HOLDS Import").Range("A:G").PasteSpecial Paste:=xlPasteValues
   End With 

End Sub

1 个答案:

答案 0 :(得分:0)

您要求验证代码...这是一个已清理的版本。由于您粘贴了整个A:G列,因此您无需先清除它们。此外,您可以粘贴作为复制方法的一部分;这节省了一行代码。

Sub CopytoRISKreport()

    Const Dest_file_name As String = "Q:\Co Risk Report\3 Month RISK Report.xlsm"
    Const Source_file_name As String = "Q:\Co Risk Report\CO Holds.xls"

    Dim dest_wkbk As Workbook
    Dim Dest As Range
    Dim source_wkbk As Workbook
    Dim Source As Range

    Set dest_wkbk = Workbooks.Open(Dest_file_name)
    Set Dest = dest_wkbk.Worksheets("CO_HOLDS Import").Range("A:G")

    Set source_wkbk = Workbooks.Open(Source_file_name)
    Set Source = source_wkbk.Worksheets("CO_HOLDS Import").Range("A:G")

    Source.Copy Dest

End Sub

注意:如果您关闭提醒,请务必稍后重新开启。

更新:修改了代码,以便打开源文件。