如何在不同的工作簿之间切换以复制/粘贴信息

时间:2016-07-18 19:24:29

标签: excel vba excel-vba macros

这是我第一次尝试在工作中编写宏,所以如果这很简单,请在我身上轻松一点,我无法在线找到解决方案并且不断在我的代码中出错:

基本上,我有一个原始数据文件,我想将不同的过滤数据复制到一个新的工作簿中。我已经通过了将M列复制到新创建的工作簿中的部分,但我不知道如何使代码返回到原始数据文件并复制另一列,然后将其粘贴到同一个新列中的另一列中工作簿。

这是我到目前为止所拥有的,与“'''''''是我尝试过并得到错误的。不知道为什么它不起作用

Dim FilePath As String
Dim SourceFile As String

Sub Reconcile()

FilePath = Sheets("Reconcile").Range("E5")     'location of saved attachment
If Right(FilePath, 1) <> "\" Then FilePath = FilePath & "\"

SourceFile = Sheets("Reconcile").Range("E7") 'name of attachment file

FilePath = FilePath & SourceFile

Application.DisplayAlerts = False
Application.ScreenUpdating = False

Workbooks.Open Filename:=FilePath, UpdateLinks:=False 'open sourcefile     workbook
ActiveWorkbook.CheckCompatibility = False

'''Set DataFile = Workbooks(ActiveWorkbook.Name) 'activeworkbook is the raw data file

'Copy the date column into a new wb and remove duplicates
    Columns("M:M").Select
    Selection.Copy
    Workbooks.Add
    ActiveSheet.Paste
    Application.CutCopyMode = False
    ActiveSheet.Range("$A$1:$A$1666").RemoveDuplicates Columns:=1, Header:=xlNo
    Rows(1).Delete

'''DataFile.Sheets("Sheet1").Range("A1").Select


End Sub

最后一行是我尝试返回原始数据文件并选择单元格A1。

谢谢!

1 个答案:

答案 0 :(得分:1)

首先创建一个Worksheet对象和几个Workbook对象

Dim wsReconcile As Worksheet
Dim wbDatafile As Workbook
Dim wbNewfile As Workbook

然后,在代码开头,在打开任何新工作簿之前,将wsReconcile设置为您的Reconcile表

Set wsReconcile = Worksheets("Reconcile")

然后,当您执行数据文件的WorkBooks.Open时,可以将其分配给wbDatafile对象

Set wbDatafile = Workbooks.Open(Filename:=FilePath, UpdateLinks:=False) 'open sourcefile     workbook

并且,当您添加新工作簿时,将其分配给wbNewfile对象

Set wbNewfile = Workbooks.Add

然后,每次需要引用数据文件时,请使用wbDatafile对象,例如

wbDatafile.Sheets("Sheet1").Range("A1").Select

每次需要引用新文件时,请使用wbNewfile对象,例如

wbNewfile.Sheets("Sheet1").Range("$A$1:$A$1666").RemoveDuplicates Columns:=1, Header:=xlNo
wbNewfile.Sheets("Sheet1").Rows(1).Delete

并且,当您想要引用原始的Reconcile表时,可以使用wsReconcile对象,例如

SourceFile = wsReconcile.Range("E7")