这是我第一次尝试在工作中编写宏,所以如果这很简单,请在我身上轻松一点,我无法在线找到解决方案并且不断在我的代码中出错:
基本上,我有一个原始数据文件,我想将不同的过滤数据复制到一个新的工作簿中。我已经通过了将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。
谢谢!
答案 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")